我想使用MENU中菜单项进行复选操作,可怎么也打不上那个钩
代码
void CTestwinDlg::OnMenuStyle() 
{
// TODO: Add your command handler code here
CMenu menutem;
menutem.LoadMenu( IDR_MENU1 );
if ( menutem.CheckMenuItem( ID_MENU_STYLE , MF_BYCOMMAND ) == MF_CHECKED )
{
CheckMenuItem( menutem,ID_MENU_STYLE ,  MF_UNCHECKED );
}
else
{
  CheckMenuItem( menutem, ID_MENU_STYLE ,  MF_CHECKED );
}
}
这段
menutem.CheckMenuItem( ID_MENU_STYLE , MF_BYCOMMAND ) == MF_CHECKED能够正确取出该菜单项是否被复选,下面的checkmenuitem也执行了,可就是复选状态就是不能改变,为啥啊?

解决方案 »

  1.   

    你trackpopupmenu的时候pWnd设的什么,写成GetParent()就没问题
      

  2.   

    trackpopupmenu,  我写的是GetSafeHwnd 这样
    我再试试你的
      

  3.   

    hWnd 
    [in] Handle to the window that owns the shortcut menu. This window receives all messages from the menu. The window does not receive a WM_COMMAND message from the menu until the function returns.
      

  4.   

    我现在不在shortcut menu中在framemenu中用也打不上或者去掉那个钩那个钩