teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

再追記

2016/04/19 23:49

投稿

hsk
hsk

スコア728

title CHANGED
File without changes
body CHANGED
@@ -55,4 +55,30 @@
55
55
  >::CheckMenuItem(hmenu, ...
56
56
 
57
57
  >::CheckMenuItem(hmenuPopup, ...
58
- としてみましたが、同じでした。
58
+ としてみましたが、同じでした。
59
+
60
+ ---
61
+ 再追記
62
+ GetMenuItemInfoやSetMenuItemInfoを利用しても、変化ありませんでした(エラーにもなりません)
63
+
64
+ ```C++
65
+ void COcxCtrl::OnPopupCheck()
66
+ {
67
+ HMENU hmenu = ::LoadMenu((HINSTANCE)::GetWindowLong(this->GetSafeHwnd(), GWL_HINSTANCE), MAKEINTRESOURCE(IDR_MENU1));
68
+ HMENU hmenuPopup = ::GetSubMenu(hmenu, 0);
69
+
70
+ MENUITEMINFO menuItemInfo;
71
+ ::ZeroMemory(&menuItemInfo, sizeof(menuItemInfo));
72
+ menuItemInfo.cbSize = sizeof(menuItemInfo);
73
+ menuItemInfo.fMask = MIIM_STATE;
74
+
75
+ DWORD d = ::GetMenuItemInfo(hmenu, IDM_POPUP_CHECK, false, &menuItemInfo);
76
+ DWORD e = ::GetLastError();
77
+
78
+ menuItemInfo.fMask = MIIM_STATE;
79
+ menuItemInfo.fState |= MF_CHECKED;
80
+
81
+ DWORD dw = ::SetMenuItemInfo(hmenu, IDM_POPUP_CHECK, false, &menuItemInfo);
82
+ DWORD ee = ::GetLastError();
83
+ }
84
+ ```

1

追記

2016/04/19 23:49

投稿

hsk
hsk

スコア728

title CHANGED
File without changes
body CHANGED
@@ -46,4 +46,13 @@
46
46
 
47
47
  だいぶ以前にしたときには出来たのですが、コードはすっかり忘れてしまい、何がおかしいのか思い当たらず困ってしまいました。
48
48
 
49
- 何かご指摘いただけますと助かります。
49
+ 何かご指摘いただけますと助かります。
50
+
51
+ ---
52
+ 追記
53
+ 該当メニュー項目プロパティのCheckedをFalseにすると、::CheckMenuItem() の戻り値は 0 です。
54
+
55
+ >::CheckMenuItem(hmenu, ...
56
+
57
+ >::CheckMenuItem(hmenuPopup, ...
58
+ としてみましたが、同じでした。