原来顶层菜单属于系统命令(SYSCOMMAND),困扰好几天的问题解决了,问题如下!
我每次点击顶层菜单的时候,总是弹出消息框,我的原意是在单机子菜单的时候再弹出消息框,现在解决了!
.elseif eax == WM_SYSCOMMAND
mov eax,wParam
movzx eax,ax
.if eax == IDM_HELP || eax == IDM_ABOUT
invoke _DisplayMenuItem,wParam
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.endif
上面是正确的!
.elseif eax == WM_SYSCOMMAND
mov eax,wParam
movzx eax,ax
.if eax == IDM_HELP || IDM_ABOUT
invoke _DisplayMenuItem,wParam
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.endif
这个是错误的!
自己居然把表达式写错了 真晕!……
过程是这样的,如果点击顶层菜单的话,那么,WM_SYSCOMMAND消息被激活(问题的关键),到了if的时候,if表达式始终为真,所以就直接调用_DisplayMenuItem函数了。点击顶层菜单原来是属于WM_SYSCOMMAND消息啊!!!受教训了《- -!。。》
本人初学者,大牛牛们别笑话:)