注册 登录
编程论坛 汇编论坛

关于wm_create的问题,各位帮帮忙

obstratiker 发布于 2011-09-09 13:01, 701 次点击
我在书上看到,调用CreateWindowEx函数,会产生一个wm_create消息
现在我
invoke CreateWindowEx,NULL,ADDR szClassName,offset szCaption,WS_OVERLAPPEDWINDOW,200,200,400,200,NULL,NULL,hInst,NULL
...
...
invoke DispatchMessage, ADDR @msg
然后进入窗口过程
在过程中
.if uMsg==WM_CREATE
    invoke CreateWindowEx,NULL,ADDR szButtonClassName,offset szButtonCaption,WS_CHILD or WS_VISIBLE,10,10,65,22,hWndParent,NULL,hInst,NULL
创建了一个按钮

现在可以知道第一个 CreateWindowEx 确实产生了 wm_create
我想问为什么创建按钮 CreateWindowEx 产生的 wm_create 没有被 GetMessage 接受并继续返回窗口过程的.if uMsg==WM_CREATE 里呢?
4 回复
#2
xiaomarn2011-09-09 16:46
.if uMsg==WM_CREATE 是属于主窗口的回调函数的
而后一个invoke CreateWindowEx产生的WM_CREATE是属于按钮的,所以不会被系统发给getmessage()
#3
编程的乐趣2011-09-09 18:28
呵呵
#4
obstratiker2011-09-10 19:35
回复 2楼 xiaomarn
还是不清楚WM_CREATE是属于按钮的是什么意思……
能稍微详细一点吗?
为什么不会被getmessage()接收
#5
ly07912011-09-11 16:28
invoke   GetMessage,lpMsg,hWnd,wMsgFilterMin,wMsgFilterMax
hWnd  会指定要获取那个窗口的消息
你看看消息循环就知道了为什么创建按钮 CreateWindowEx 产生的 wm_create 没有被 GetMessage 接受
1