热情软件屋

 

PB中如何使用BitBlt


编号:QA002447
建立日期: 2000年1月17日 最后修改日期:2000年1月17日
所属类别:

阿康:
    操作系统:WIN
    编程工具:PB
    问题:我在pb中声明api函数
     " FUNCTION ulong BitBlt(ulong hDestDC,ulong x,ulong y,ulong nWidth, &
     ulong nHeight,ulong hSrcDC,ulong xSrc,ulong ySrc,ulong dwRop) &
     LIBRARY "gdi32.dll"
    却不知道其中的hDestDC和hSrcDC参数是如何使用的?请帮帮忙!!!!(主持人:本问题的关键并不是不知道BitBlt的语法,而是在PB中如何得到hDC?)

回答:

    在PBZ中可以使用BitBlt函数:
    先声明函数
     FUNCTION ulong BitBlt(ulong hDestDC,ulong x,ulong y,ulong nWidth,ulong nHeight,ulong hSrcDC,ulong xSrc,ulong ySrc,ulong dwRop) LIBRARY "gdi32.dll"
    FUNCTION ulong GetWindowDC(ulong hwnd) LIBRARY "user32.dll"
    FUNCTION ulong PatBlt(ulong hdc,ulong x,ulong y,ulong nWidth,ulong nHeight,ulong dwRop) LIBRARY "gdi32.dll"
    在程序中调用即可。
     long re,h1,h2
     h1=GetWindowDC(handle(w))
     h2=PatBlt(H1,200,200,50,100,16711778) //画白色矩形框 16711778表示WHITENESS
     re= BitBlt(h1,300,10,50,200,h1,10,10,13369376) //13369376表示SRCCOPY
    

BitBlt
VB声明
Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
说明
将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容
返回值
Long,非零表示成功,零表示失败。会设置GetLastError。
参数表
参数 类型及说明
hDestDC Long,目标设备场景
x,y Long,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示
nWidth,nHeight Long,欲传输图象的宽度和高度
hSrcDC Long,源设备场景。如光栅运算未指定源,则应设为0
xSrc,ySrc Long,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示
dwRop Long,传输过程要执行的光栅运算
注解

在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败
如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程

此问题由pengchen回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio