开发者社区> 技术小胖子> 正文

wxWidgets第七课 wxWindow的HWND句柄和其对象指针

简介:
+关注继续查看

WXHWND说明

    在wxWidgets中,开发的目标设备是Windows平台,有时候需要调用原生态的窗口函数进行编程。例如为了使用AGG渲染库,必须获取控件的窗口句柄,创建兼容性位图,得到渲染缓存。在windows平台下窗口句柄的类型是HWND。这个时候需要调用wxWindow::GetHWND()函数,获取到原生态窗口的句柄。这个函

数的返回值是一个WXHWND类型的窗口句柄,实际上,WXHWND可以强制转换成HWND,得到原生态的窗口句柄,正如下面的例子所描述的不强制转换也没有问题!

例子

WXHWND hwd = GetHWND();//获取窗口的句柄

RECT rect2;//win32 结构体

wxRect rect3 = GetClientRect();

rect2.left = rect3.GetLeft();

rect2.top  = rect3.GetTop();

rect2.right = rect3.GetRight();

rect2.bottom = rect3.GetBottom();

ValidateRect(hwd, &rect2);//调用win32 API,第一个参数是HWND



wxWindow说明

    wxGetWindowFromHWND根据窗口句柄获取窗口对象根据core/evtloop.cpp文件中的bool wxGUIEventLoop::PreProcessMessage(WXMSG *msg)函数描述,可以通过如下的函数,根据窗口句柄WXHWND获取窗口的对象指针: wxWindow *wndThis = wxGetWindowFromHWND((WXHWND)hwnd);



GetClientRect特别说明

GetClientRect得到的是相对于窗口客户区左上角的坐标.有两个版本的函数

WIN32系统的函数

WINUSERAPI BOOL  WINAPI  GetClientRect(

    _In_ HWND hWnd,

    _Out_ LPRECT lpRect);


wx内部的基类函数

wxWindowBase::GetClientRect


为了指定系统的API函数,需要使用::限定符,否则默认情况下使用内部类成员函数





     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1955029,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
课外闲谈5.结构体类型定义不会分配内存
课外闲谈5.结构体类型定义不会分配内存
29 0
【C初阶】第九篇——函数栈帧的创建与销毁
【C初阶】第九篇——函数栈帧的创建与销毁
20 0
嵌入式linux基础:c++(四)重载 指针 引用
嵌入式linux基础:c++(四)重载 指针 引用
53 0
MFC文件之SHGetFileInfo函数与SHFILEINFO结构体
MFC文件之SHGetFileInfo函数与SHFILEINFO结构体
106 0
Windows程序设计——CreatePen详细参数
Windows程序设计——CreatePen详细参数
65 0
WindowsAPI每日一练(2) 使用应用程序句柄
WindowsAPI每日一练系列 :https://www.cnblogs.com/LexMoon/category/1246238.html   WindowsAPI每日一练(1) WinMain  WindowsAPI每日一练(2) 使用应用程序句柄   从上面这段程序就可以看到,_tWinMain是应用程序的入口函数,这里是使用它的宏,定义在tchar.
1617 0
在windows上操练swift语言:类和结构体
条件所限,只能在WINDOWS上学习SWIFT的基本语法。 还有,有swift for windows 1.9帮忙, 看书没那么燥。。。。
2568 0
+关注
技术小胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载