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);
GetSafeHwnd()函数相关推荐
- C++ MFC常用函数(转)
WinExec() ExitWindowsEx() GlobalMemoryStatus() GetSystemInfo() GetSystemDirectory() GetWindowsDirect ...
- 重庆大学光电工程学院 贾旭滨 对 “句柄” “指针” 有下面的描述(AfxGetMainWnd GetSafeHwnd() AfxGetAppName() AfxGetThread)...
http://www1.ustc.edu.cn/personal/csli/vc_note/frame.htm 句 柄 出处: 方塘2003.9.22 整理,之所以前面引用了 贾旭滨 先生 ...
- 由MessageBox和AfxMessageBox的使用异同所感
我记得刚开始学图形界面编程的时候,接触的最早的一个函数应该就是MessageBox,之前都一直是控制台程序,突然能运行蹦出一个对话框感觉还是很新鲜的.当时还利用MessageBox写一些恶搞程序,利用 ...
- 转载:MFC 获得各类指针、句柄的方法
2019独角兽企业重金招聘Python工程师标准>>> <h5> </h5> <p>转载: <p>最近有些人在问MFC编程一些要点,有 ...
- VC中获取窗口句柄的各种方法
AfxGetMainWnd AfxGetMainWnd获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...
- MFC获得主窗口和父窗口指针
VC++中有关句柄和指针及其转换 1.MFC窗口的句柄和指针的转换 (1) 一般窗口对象都会有一个其对应的句柄变量,所以我们可以取此对象的m_hWnd属性来得到句柄. (2)使 ...
- VC各种情况下的窗口句柄的获取
AfxGetMainWnd 获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与特定父窗口相联的子窗口z序 ...
- VC中获取窗体句柄的各种方法
AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...
- 实例1.1:通过HWND获得CWnd指针
//获得当前窗口的句柄HWND hWnd = GetSafeHwnd();//通过HWND获得CWnd指针CWnd *pWnd = CWnd::FromHandle(hWnd);CString str ...
最新文章
- wampserver下升级php7
- codevs 2075 yh女朋友的危机
- 容器 root权限运行_【漏洞通告】Containerd容器逃逸漏洞通告 (CVE202015257)
- JWT令牌组成和安全校验讲解
- 在${}中为甚么采用@Param及多参数查询@Param
- STL容器底层数据结构的实现
- Java基础入门笔记-多态
- 排序 -> 快速排序
- Atom飞行手册翻译: 4.5 ~ 4.8
- 聚焦行业新风口 白鹭科技云游戏战略发布会成功举办
- 【BZOJ4991】我也不知道题目名字是什么(线段树)
- js去空格的其他方法
- 分布式系统之paxos算法
- 《动手学深度学习》资料汇总+网站推荐
- 怎么把cad的图导入ps_如何将CAD图纸导入到Photoshop中编辑
- \u5168\u56fd\u7f8e\u5bb9\u5927\u592b数据采集数据(\u82b1\u5bb9\u7f51 huaroo 公开数据),爬虫120例之26例
- w10计算机无法启动不了怎么办,win10开不开机怎么办_win10电脑无法开机的解决步骤...
- linux学习第八周总结
- 建木DevOps流程的快速运用
- 启动任务管理器两种方法