前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

GetSafeHwnd()函数利用教程

时候:2011-08-25 01:43来源:知行网www.zhixing123.cn 编辑:麦田守望者

当我们想获得一个窗口工具(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);

------分开线----------------------------
标签(Tag):C# C#实例教程 c#根本教程 C#源代码 c#技能
------分开线----------------------------
保举内容
猜你感兴趣