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);

GetSafeHwnd()函数相关推荐

  1. C++ MFC常用函数(转)

    WinExec() ExitWindowsEx() GlobalMemoryStatus() GetSystemInfo() GetSystemDirectory() GetWindowsDirect ...

  2. 重庆大学光电工程学院 贾旭滨 对 “句柄” “指针” 有下面的描述(AfxGetMainWnd GetSafeHwnd() AfxGetAppName() AfxGetThread)...

    http://www1.ustc.edu.cn/personal/csli/vc_note/frame.htm  句      柄 出处: 方塘2003.9.22 整理,之所以前面引用了 贾旭滨 先生 ...

  3. 由MessageBox和AfxMessageBox的使用异同所感

    我记得刚开始学图形界面编程的时候,接触的最早的一个函数应该就是MessageBox,之前都一直是控制台程序,突然能运行蹦出一个对话框感觉还是很新鲜的.当时还利用MessageBox写一些恶搞程序,利用 ...

  4. 转载:MFC 获得各类指针、句柄的方法

    2019独角兽企业重金招聘Python工程师标准>>> <h5> </h5> <p>转载: <p>最近有些人在问MFC编程一些要点,有 ...

  5. VC中获取窗口句柄的各种方法

    AfxGetMainWnd AfxGetMainWnd获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...

  6. MFC获得主窗口和父窗口指针

    VC++中有关句柄和指针及其转换 1.MFC窗口的句柄和指针的转换       (1) 一般窗口对象都会有一个其对应的句柄变量,所以我们可以取此对象的m_hWnd属性来得到句柄.       (2)使 ...

  7. VC各种情况下的窗口句柄的获取

    AfxGetMainWnd 获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与特定父窗口相联的子窗口z序 ...

  8. VC中获取窗体句柄的各种方法

    AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...

  9. 实例1.1:通过HWND获得CWnd指针

    //获得当前窗口的句柄HWND hWnd = GetSafeHwnd();//通过HWND获得CWnd指针CWnd *pWnd = CWnd::FromHandle(hWnd);CString str ...

最新文章

  1. wampserver下升级php7
  2. codevs 2075 yh女朋友的危机
  3. 容器 root权限运行_【漏洞通告】Containerd容器逃逸漏洞通告 (CVE202015257)
  4. JWT令牌组成和安全校验讲解
  5. 在${}中为甚么采用@Param及多参数查询@Param
  6. STL容器底层数据结构的实现
  7. Java基础入门笔记-多态
  8. 排序 -> 快速排序
  9. Atom飞行手册翻译: 4.5 ~ 4.8
  10. 聚焦行业新风口 白鹭科技云游戏战略发布会成功举办
  11. 【BZOJ4991】我也不知道题目名字是什么(线段树)
  12. js去空格的其他方法
  13. 分布式系统之paxos算法
  14. 《动手学深度学习》资料汇总+网站推荐
  15. 怎么把cad的图导入ps_如何将CAD图纸导入到Photoshop中编辑
  16. \u5168\u56fd\u7f8e\u5bb9\u5927\u592b数据采集数据(\u82b1\u5bb9\u7f51 huaroo 公开数据),爬虫120例之26例
  17. w10计算机无法启动不了怎么办,win10开不开机怎么办_win10电脑无法开机的解决步骤...
  18. linux学习第八周总结
  19. 建木DevOps流程的快速运用
  20. 启动任务管理器两种方法

热门文章

  1. Java程序员必须掌握的常用Linux命令
  2. 中国程序员容易发音错误的单词
  3. 深度探秘 Java 8 函数式编程(下)
  4. Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
  5. 一个jstack/jmap等不能用的case
  6. Java:十六进制转换成十进制
  7. UNIX:缓冲区和重定向
  8. 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...
  9. 什么叫“碳达峰、碳中和”?一副漫画看明白
  10. 为什么维护工作让数据中心工作人员夜不能寐?