我用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
}
答案 0 :(得分:0)
wnd对象超出范围 - 尝试将其作为成员并检查当时会发生什么。此外,如果您尝试为对话框m_hWnd对象分配不同的句柄,那么您犯了一个错误,因为在调用OnInitDialog时(响应Create调用),m_hWnd应该对您的对话框有效,所以你不应该重新分配对话框成员窗口句柄,而是为它创建一个单独的成员。希望这会有所帮助。