GetSafeHwnd()函数
GetSafeHwnd,計算機語言函數(shù)。用于得到窗口指針句柄。
當我們想得到一個窗口對象(CWnd的派生對象)指針的句柄(HWND)時,最安全的方法是使用GetSafeHwnd()函數(shù),通過下面的例子來看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
這樣的代碼當開始得到的pwnd為空的時候就會出現(xiàn)一個“General protection error”,并關(guān)閉應(yīng)用程序,因為一般不能對一個NULL指針訪問其成員,如果用下面的代碼:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
就不會出現(xiàn)問題,因為盡管當pwnd是NULL時,GetSafeHwnd仍然可以用,只是返回NULL,通過GetSafeHwnd()的實現(xiàn)代碼就更清楚了:
_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const
{
return this == NULL?NULL:m_hWnd;
}
你看有很多函數(shù)的參數(shù)要求HWND,它就可以派上用場了.
HWND hwnd;
CWnd* pWnd;
pWnd=((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
hwnd=pWnd->GetDlgItem(IDC_EDIT2)->GetSafeHwnd();
::SetWindowText(hwnd,m_strResult);
總結(jié)
以上是生活随笔為你收集整理的GetSafeHwnd()函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VC学习笔记 -单选按钮控件(Ridio
- 下一篇: GetSafeHdc( )