gpt4 book ai didi

c++ - 函数 CWnd::CreateControl 成功,但 m_hWnd 为 NULL

转载 作者:可可西里 更新时间:2023-11-01 14:36:44 48 4
gpt4 key购买 nike

我用VC++6.0运行代码,一切正常。但是在Visual C++ 2010下运行同样的代码,wnd(即m_hWnd)的句柄总是NULL。此外,返回值 bRet 为 TRUE(即成功)。

这是我的代码:

BOOL CDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here
CRect rect;
GetClientRect(rect);
CWnd wnd;
BOOL bRet = wnd.CreateControl(_T("WMPlayer.OCX"), NULL, WS_VISIBLE, rect, this, 19089);

return TRUE; // return TRUE unless you set the focus to a control
}

最佳答案

wnd 对象超出范围 - 尝试使其成为成员并检查随后发生的情况。此外,如果您试图为对话框 m_hWnd 对象分配不同的句柄,那么您就犯了一个错误,因为在调用 OnInitDialog 时 m_hWnd 应该对您的对话框有效(响应 Create 调用),所以您不应该重新分配对话框成员窗口句柄,而是为其创建一个单独的成员。希望这会有所帮助。

关于c++ - 函数 CWnd::CreateControl 成功,但 m_hWnd 为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13082758/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com