[英]How to set check on menu item mfc c++
how to set check on menu item mfc c++ i try this but, always unchecked menu item. 如何设置菜单项mfc c ++的检查我尝试执行此操作,但始终未选中菜单项。
CString tcBuff;
CMenu popMenu;
popMenu.LoadMenu(nMenuID);
if (text.Compare(defaultconfig) == 0)
{
tcBuff.LoadStringW(IDC_DEFAULTREMOVE);
popMenu.ModifyMenuW(ID_CONFIGURATION_DEFAULT,0,ID_CONFIGURATION_DEFAULT,tcBuff);
popMenu.CheckMenuItem(IDC_DEFAULTREMOVE, MF_CHECKED || MF_BYCOMMAND);
}
thanks for help. 感谢帮助。
You want the |
您想要|
operator, not the ||
运算符,而不是||
operator. 操作员。
You want to combine the MF_CHECKED
and MF_BYCOMMAND
bit flags, which you do with a bitwise OR operation. 您想结合使用按位或操作进行的MF_CHECKED
和MF_BYCOMMAND
位标志。 That requires the |
这需要|
operator. 操作员。
Change your code to look like this: 更改您的代码,如下所示:
popMenu.CheckMenuItem(IDC_DEFAULTREMOVE, MF_CHECKED | MF_BYCOMMAND);
The ||
||
operator is the logical OR operator. 运算符是逻辑或运算符。 It actually gives you this: 它实际上为您提供了这一点:
0x8 /* MF_CHECKED */ || 0x0 /* MF_BYCOMMAND */ == 0
Which is equivalent to MF_UNCHECKED
. 等效于MF_UNCHECKED
。
Try to use ID_CONFIGURATION_DEFAULT instead of IDC_DEFAULTREMOVE in the statement popMenu.CheckMenuItem(IDC_DEFAULTREMOVE, MF_CHECKED || MF_BYCOMMAND); 尝试在语句popMenu.CheckMenuItem(IDC_DEFAULTREMOVE,MF_CHECKED || MF_BYCOMMAND)中使用ID_CONFIGURATION_DEFAULT代替IDC_DEFAULTREMOVE。
ID_CONFIGURATION_DEFAULT - command ID IDC_DEFAULTREMOVE - string resource ID ID_CONFIGURATION_DEFAULT-命令ID IDC_DEFAULTREMOVE-字符串资源ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.