私はRegisterClassEx()
で作成したカスタムウィンドウクラスを持っています。このクラスのウィンドウインスタンスを作成し、そのHMENU
プロパティを設定すると、CreateWindowEx()
関数が失敗します。HMENUのIDが設定されていない場合、
この種のウィンドウのID/HMENU
IDを設定できないのはなぜですか?
// hwnd = NULL
hwnd = CreateWindowEx(0, WND_CLASS_NAME.c_str(), wndTitle.c_str(), wndFlags,
wndDimensions.left, wndDimensions.top, wndDimensions.right, wndDimensions.bottom,
NULL, (HMENU)50001, hinstance, NULL);
// hwnd is valid
hwnd = CreateWindowEx(0, WND_CLASS_NAME.c_str(), wndTitle.c_str(), wndFlags,
wndDimensions.left, wndDimensions.top, wndDimensions.right, wndDimensions.bottom,
NULL, 0, hinstance, NULL);
目的はすべてGetDlgCtrlId(hwnd);
を呼び出すことです。
50001は有効なメニューハンドルだと思いますか? – immibis
@immibis有効なメニュー値の範囲は? – Sam
'CreateMenu'によって返されたハンドルについてはどうですか? '(HWND)50001'をウィンドウハンドルとして使用しないで、'(HMENU)50001'をメニューハンドルとして使うのはなぜですか? – immibis