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 回答