1

以下のコードを使用すると、 「警告: ウィンドウの作成に失敗しました: GetLastError が 0x00000579 を返します」という警告が表示さ れます

CWnd* m_pWndStatic = new CWnd;
m_pWndStatic->CreateEx(0, _T("STATIC"),
                      _T("Hi"), WS_CHILD | WS_VISIBLE | WS_POPUP,
                      CRect(0, 0, 20, 20), this, 1234);

PopUp、つまり WS_POPUP なしで呼び出すと、正常に動作します。私はVS2010を使用しています。

4

1 に答える 1

4
//
// MessageId: ERROR_INVALID_MENU_HANDLE
//
// MessageText:
//
// Invalid menu handle.
//
#define ERROR_INVALID_MENU_HANDLE        1401L

これは間違った方向に進みますが、本当の問題は、ポップアップウィンドウでもある子ウィンドウを作成できないことです。トップレベルのウィンドウのみがポップアップになります。ポップアップウィンドウの場合、渡された「1234」引数が子ウィンドウIDではなくメニューハンドルとして解釈されるため、診断が生成されます。

WS_POPUPスタイルフラグを削除します。

于 2012-04-27T12:56:08.003 に答える