0
我想在全局函數中使用Setwindowpos()來更改一個對話框的位置。 所以我編碼像下面Cwnd返回未定義的值
CWnd *pWnd = (CWnd*)pMain->GetDlgItem(IDD_TOOLBAR_DIALOG);//GetActiveFrame();
pWnd->SetWindowPos(&CWnd::wndBottom,0,80,45,900,SWP_SHOWWINDOW);
pWnd返回爲未定義的值。 所以我按照這個方法
CToolTab * tab;
tab = new CToolTab();
if(tab->GetSafeHwnd() == 0)
{
tab = new CToolTab();
if(tab->m_hWnd != NULL)
{
tab->SetWindowPos(&CWnd::wndBottom,0,80,45,900,SWP_SHOWWINDOW); }
}
但是m_hWnd返回0x0000.So在這兩種情況下SetWindowPos顯示斷言錯誤。 如何獲取全局函數中對話框的句柄?
在調用這個全局函數之前,對話框對象是否已經構造好了?即你是否在OnInitDialog()之前或之後調用它? – Naveen 2010-01-28 05:30:10
其實即時通訊使用該對話框中的WPF控件。對於該對話框中的一個按鈕,我減少了這個dailog的寬度。實際上,該按鈕是WPF按鈕。但我通過放置普通的MFC按鈕進行檢查。但在這種情況下,它也不會工作 – Anu 2010-01-28 05:36:54
你實際上沒有回答@ naveen的問題。是pMain有效還是爲空?也許更多的代碼會幫助我們幫助你。 – Ruddy 2010-01-29 13:02:49