-
GetSafeHwnd
鎖定
GetSafeHwnd,計算機語言函數。用於得到窗口指針句柄。
- 外文名
- GetSafeHwnd
- 屬 性
- 計算機語言函數
當我們想得到一個窗口對象(CWnd的派生對象)指針的句柄(HWND)時,最安全的方法是使用GetSafeHwnd()函數,通過下面的例子來看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
這樣的代碼當開始得到的pwnd為空的時候就會出現一個“General protection error”,並關閉應用程序,因為一般不能對一個NULL指針訪問其成員,如果用下面的代碼:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
就不會出現問題,因為儘管當pwnd是NULL時,GetSafeHwnd仍然可以用,只是返回NULL,通過GetSafeHwnd()的實現代碼就更清楚了:
_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const { return this == NULL?NULL:m_hWnd; }
你看有很多函數的參數要求HWND,它就可以派上用場了.
HWND hwnd; CWnd* pWnd; pWnd=((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView(); hwnd=pWnd->GetDlgItem(IDC_EDIT2)->GetSafeHwnd(); ::SetWindowText(hwnd,m_strResult);
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:10次歷史版本
- 最近更新: JD萤火虫003