2013-01-14 40 views
1

我有一箇舊的MFC應用程序,我試圖禁用菜單項。在子菜單項上使用EnableMenuItem

我有一個典型類型的結構的菜單:

File 
- Open 
- Save 
- Close 
Edit 
- Cut 
- Copy 
- Paste 

使用下面的命令:

EnableMenuItem(hMenu,ID_FILE, MF_BYCOMMAND | MF_GRAYED); 

我可以變灰頂層菜單項的菜單命令。但是,如果我這樣做

EnableMenuItem(hMenu,ID_PASTE, MF_BYCOMMAND | MF_GRAYED); 

我不能灰化任何子菜單項。如果我得到子菜單句柄並將其傳遞給EnableMenuItem,它對我沒有好處。如果我使用SetMenuItemInfo或者

對於如何禁用子菜單項有什麼建議嗎? EnableMenuItem函數有什麼問題嗎?

回答

0

According to MSDN您需要調用DrawMenuBar()以獲取UI以反映對菜單狀態的更改。

+0

我打電話給DrawMenuBar,它適用於頂級菜單項,但不適用於子菜單項。 – whatsisname

+0

也許發佈更多的代碼呢?這聽起來像是你得到HMENU的方式有問題,或者你有重複的菜單項ID。 – HerrJoebob