Weil du von einem HWND zu einem Zeiger von CWnd und dann den Zeiger von CMenu zu einem HMENU per C-Konvertierung umwandelst, was in meinen Augen sehr unsicher und schlecht ist. Zudem ist die MFC dafür da, dass du eben ohne die Handles auskommst, bzw. so arbeiten kannst, dass du die Objekte direkt ansprichst. Wieso willst du also womöglich ein Zeiger von einem CWnd zu einem HWND konvertieren um dieses HWND später zu deinem CProjectDlg zu konvertieren um damit GetMenu aufzurufen und den erhaltenen Zeiger zu einem HMENU zu konvertieren um dann das HMENU dann per WinAPI zu benutzen? Anstatt einfach direkt mit den Pointer zu arbeiten, bzw. die MFC? Ich meine man kann es natürlich schon unnötig kompliziert, krumm, schräg und fehleranfällig machen, wenn man will, aber das muss doch nicht sein oder?
Dazu musst du dir vielleicht auch mal im klaren sein, was du benutzen willst. Die MFC oder die WinAPI? Man kann die zwei natürlich auch mischen, aber bitte nicht bei jeder Konvertierung erneut. Schau dir deshalb vielleicht auch mal die Klassen-Members in der MSDN an, normalerweise hat man ja auch eine Offline-Dokumenation, wo man dies sehr schnell nachschauen kann. Da entdeckt man eben in der Suche, dass es ein EnableMenuItem der Windows Management gibt und von der MFC. Die MFC ist schliesslich da, um das Arbeiten mit der WinAPI zu erleichtern. Aber wie du mit der MFC umgehst, da erschwert sie dir nur das Arbeiten
Grüssli