主题:请教一个win32编程中的设备环境句柄问题
请问:下面加红线就是bitblt的调用时它的参数中有两个设备环境句柄 但是我不明白的是在整个程序中这个句柄没有被赋值 为什么也不会出错 附件有完整的源程序下面的为其中一个子程序
_CreateClockPic proc
local @stTime:SYSTEMTIME
pushad
invoke [color=FF0000]BitBlt,hDcClock,0,0,CLOCK_SIZE,CLOCK_SIZE,hDcBack,0,0,SRCCOPY[/color]
;********************************************************************
; 画时钟指针
;********************************************************************
invoke GetLocalTime,addr @stTime
invoke CreatePen,PS_SOLID,1,0
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
movzx eax,@stTime.wSecond
mov ecx,360/60
mul ecx ;秒针度数 = 秒 * 360/60
invoke _DrawLine,hDcClock,eax,60
;********************************************************************
invoke CreatePen,PS_SOLID,2,0
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
movzx eax,@stTime.wMinute
mov ecx,360/60
mul ecx ;分针度数 = 分 * 360/60
invoke _DrawLine,hDcClock,eax,55
;********************************************************************
invoke CreatePen,PS_SOLID,3,0
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
movzx eax,@stTime.wHour
.if eax >= 12
sub eax,12
.endif
mov ecx,360/12
mul ecx
movzx ecx,@stTime.wMinute
shr ecx,1
add eax,ecx
invoke _DrawLine,hDcClock,eax,50
;********************************************************************
invoke GetStockObject,NULL_PEN
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
popad
ret
_CreateClockPic endp
_CreateClockPic proc
local @stTime:SYSTEMTIME
pushad
invoke [color=FF0000]BitBlt,hDcClock,0,0,CLOCK_SIZE,CLOCK_SIZE,hDcBack,0,0,SRCCOPY[/color]
;********************************************************************
; 画时钟指针
;********************************************************************
invoke GetLocalTime,addr @stTime
invoke CreatePen,PS_SOLID,1,0
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
movzx eax,@stTime.wSecond
mov ecx,360/60
mul ecx ;秒针度数 = 秒 * 360/60
invoke _DrawLine,hDcClock,eax,60
;********************************************************************
invoke CreatePen,PS_SOLID,2,0
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
movzx eax,@stTime.wMinute
mov ecx,360/60
mul ecx ;分针度数 = 分 * 360/60
invoke _DrawLine,hDcClock,eax,55
;********************************************************************
invoke CreatePen,PS_SOLID,3,0
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
movzx eax,@stTime.wHour
.if eax >= 12
sub eax,12
.endif
mov ecx,360/12
mul ecx
movzx ecx,@stTime.wMinute
shr ecx,1
add eax,ecx
invoke _DrawLine,hDcClock,eax,50
;********************************************************************
invoke GetStockObject,NULL_PEN
invoke SelectObject,hDcClock,eax
invoke DeleteObject,eax
popad
ret
_CreateClockPic endp