.if eax == WM_PAINT
invoke BeginPaint,hWnd,addr @stPs
mov @hDc,eax
invoke GetClientRect,hWnd,addr @stRect
;省略部分代码
invoke EndPaint,hWnd,addr @stPs
以上给BeginPaint,GetClientRect,EndPaint传递的窗口句柄都是hWnd,但到了下面要销毁窗口时的这句
.elseif eax == WM_CLOSE
invoke DestroyWindow,hWinMain
怎么给DestroyWindow传的句柄变为hWinMain了?
(hWinMain是用CreateWindowEx新建窗口的句柄)
望大虾们给予指点
6 个解决方案
#1
呵呵,其实CreateWindowEx返回的hWinMain和hwnd是一样的。。。
#2
关于这个我大概是这么理解的
因为窗口的大部分行为是类似的,所以,窗口过程是一个通用的代码
所以里面的参数是hWnd,假如有多个窗口共享一个窗口过程的话,
传给窗口过程哪个窗口的句柄,就对该窗口进行处理
但是一般处理WM_CLOSE消息时,表示程序已经要退出了,所以针对的是主窗口
因此在DestroyWindow里指定主窗口的句柄是hWndMain,尽管在这里hWndMain和hWnd
的值是一样的
我也刚学这里 说不太清楚
感觉从多窗口应用程序的角度考虑,会好一些
还有一个例子不知道你注意了没有,有个在WM_CREATE消息里建立子窗口的例子
用系统已经定义好的button类,CreateWindowEx的父窗口句柄参数指定的是hWnd,
而不是hWndMain,因为在WM_CREATE消息发送时,父窗口还没建立起来,所以这时候hWndMain
是没有值的
因为窗口的大部分行为是类似的,所以,窗口过程是一个通用的代码
所以里面的参数是hWnd,假如有多个窗口共享一个窗口过程的话,
传给窗口过程哪个窗口的句柄,就对该窗口进行处理
但是一般处理WM_CLOSE消息时,表示程序已经要退出了,所以针对的是主窗口
因此在DestroyWindow里指定主窗口的句柄是hWndMain,尽管在这里hWndMain和hWnd
的值是一样的
我也刚学这里 说不太清楚
感觉从多窗口应用程序的角度考虑,会好一些
还有一个例子不知道你注意了没有,有个在WM_CREATE消息里建立子窗口的例子
用系统已经定义好的button类,CreateWindowEx的父窗口句柄参数指定的是hWnd,
而不是hWndMain,因为在WM_CREATE消息发送时,父窗口还没建立起来,所以这时候hWndMain
是没有值的
#3
蛮有道理.
#4
支持
UP
UP
#5
Geomatic说的有道理。谢谢大家了。
#6
我也是不太明白,似乎没有必要用hwinmain。另外,窗口过程的postquitmessage如何知道把wm_quit传给那个线程?
#1
呵呵,其实CreateWindowEx返回的hWinMain和hwnd是一样的。。。
#2
关于这个我大概是这么理解的
因为窗口的大部分行为是类似的,所以,窗口过程是一个通用的代码
所以里面的参数是hWnd,假如有多个窗口共享一个窗口过程的话,
传给窗口过程哪个窗口的句柄,就对该窗口进行处理
但是一般处理WM_CLOSE消息时,表示程序已经要退出了,所以针对的是主窗口
因此在DestroyWindow里指定主窗口的句柄是hWndMain,尽管在这里hWndMain和hWnd
的值是一样的
我也刚学这里 说不太清楚
感觉从多窗口应用程序的角度考虑,会好一些
还有一个例子不知道你注意了没有,有个在WM_CREATE消息里建立子窗口的例子
用系统已经定义好的button类,CreateWindowEx的父窗口句柄参数指定的是hWnd,
而不是hWndMain,因为在WM_CREATE消息发送时,父窗口还没建立起来,所以这时候hWndMain
是没有值的
因为窗口的大部分行为是类似的,所以,窗口过程是一个通用的代码
所以里面的参数是hWnd,假如有多个窗口共享一个窗口过程的话,
传给窗口过程哪个窗口的句柄,就对该窗口进行处理
但是一般处理WM_CLOSE消息时,表示程序已经要退出了,所以针对的是主窗口
因此在DestroyWindow里指定主窗口的句柄是hWndMain,尽管在这里hWndMain和hWnd
的值是一样的
我也刚学这里 说不太清楚
感觉从多窗口应用程序的角度考虑,会好一些
还有一个例子不知道你注意了没有,有个在WM_CREATE消息里建立子窗口的例子
用系统已经定义好的button类,CreateWindowEx的父窗口句柄参数指定的是hWnd,
而不是hWndMain,因为在WM_CREATE消息发送时,父窗口还没建立起来,所以这时候hWndMain
是没有值的
#3
蛮有道理.
#4
支持
UP
UP
#5
Geomatic说的有道理。谢谢大家了。
#6
我也是不太明白,似乎没有必要用hwinmain。另外,窗口过程的postquitmessage如何知道把wm_quit传给那个线程?