+ -
当前位置:首页 → 问答吧 → win32汇编编程中的菜单项打勾问题

win32汇编编程中的菜单项打勾问题

时间:2011-09-01

来源:互联网

最近在学习win32汇编,在菜单项打勾这里卡壳了,用CheckMenuItem,无法使菜单项变化,就是前面没有打勾,不知道问题在哪,望大侠指点,部分代码如下



.elseif eax >= IDM_TOOLBAR && eax <= IDM_STATUSBAR
  mov ebx,eax
  invoke GetMenuState,hMenu,ebx,MF_BYCOMMAND
  .if eax == MF_CHECKED
mov eax,MF_UNCHECKED
  .else
mov eax,MF_CHECKED
  .endif
invoke CheckMenuItem,hMenu,ebx,eax

调试时发现菜单项的状态有变化,但是就是没有打勾

作者: windlxfwf   发布时间: 2011-09-01

invoke CheckMenuItem, hMenu, ebx, eax 这里,eax 也应该有 MF_BYCOMMAND 吧,不只是 MF_CHECKED 或 MF_UNCHECKED 。
另外,单纯地看原料的 state 是否为 MF_CHECKED 也有不妥。因为菜单项还有其它属性的。可以判断返回的状态是否具有 MF_CHECKED 属性;或者,单独的变量保留菜单选择状态,通过它来判断。

作者: zara   发布时间: 2011-09-02

属性要你手动修改,有些东西自己不会自动变的

作者: mydo   发布时间: 2011-09-02