温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-24 19:07:24 来源:网络 阅读:6953 作者:fengyuzaitu 栏目:系统运维

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函数,需要使用::限定符,否则默认情况下使用内部类成员函数


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI