博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GetSafeHwnd()函数
阅读量:3658 次
发布时间:2019-05-21

本文共 743 字,大约阅读时间需要 2 分钟。

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

转载地址:http://gqqfn.baihongyu.com/

你可能感兴趣的文章
SpringCloud-基础设施即服务day5-DockerCompose
查看>>
SpringCloud-平台即服务day6-GitLab
查看>>
SpringCloud-平台即服务day7-Nexus和Registry
查看>>
Spring Security oAuth2
查看>>
2021网易游戏雷火2021春招游戏功能测试工程师 笔试记录----春招补录
查看>>
完全理解Docker安装软件,只需三步!
查看>>
整体学习Spring的Bean生命周期(上帝视角)
查看>>
Redis分布式锁逐步完善过程,最后推荐Redisson框架
查看>>
区块链11-区块链去中心化应用开发4-DAPP实战-应用介绍及前置知识
查看>>
Vue2.x中使用Bus遇到的问题及解决方法
查看>>
TypeScript从入门到精通(一)准备工作
查看>>
TypeScript从入门到精通(二)静态类型
查看>>
排序算法学习和总结
查看>>
缓存优化
查看>>
Java内存模型vs JVM运行时数据区
查看>>
工作内存缓存问题
查看>>
对于同步的规则定义
查看>>
ReentrantLock(可重入锁)
查看>>
ReadWriteLock(读写锁)
查看>>
HashMap的实现原理
查看>>