|
发表于 2015-7-7 20:05:56
|
显示全部楼层
陕西省渭南市
因为易对这个支持不大.所以实现复杂.不如用汇编来解决自绘了
窗体组件都会收到各种消息.象需要重绘的消息.这个就是软件接到重绘消息后的过程
PaintMSG proc hWin:DWORD,pic:DWORD
;窗体重绘消息,用于将窗体颜色变成指定的背景色
这里就是消息开始后的处理,如果是易语言的话,就是拦截这个消息才行
LOCAL ps:PAINTSTRUCT
LOCAL hdc:DWORD
LOCAL rect:RECT
LOCAL hicon:DWORD
下边这些都是画颜色的操作
invoke BeginPaint,hWin,addr ps ;开始重绘
mov hdc,eax
invoke GetClientRect,hWin,addr rect
invoke FrameRect,hdc,addr rect,wframebrush
invoke LoadIcon,hInstance,500
mov hicon,eax
invoke DrawIconEx,hdc,5,1,hicon,32,32,0,bkcolor,DI_NORMAL ;显示图标,底色黑
.if pic==1
invoke Paint_Proc,hWin,hdc,40,35,158,158
.endif
自绘完成,将控制树交给系统.如果不正确调用系统的开始重绘和结束重绘.那么系统会替你完成绘制.也就是画成默认的颜色了
invoke EndPaint,hWin,addr ps ;重绘结束
ret
PaintMSG endp
|
|