MFC中指针和句柄的转换

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

    在MFC编程中,我感觉最让人头痛的就是数据的类型非常多,所以在对函数来进行调用时不得不进行数据类型的转换,其中最认我感觉头痛的是句柄和其指针的转换。

 1。MFC窗口的句柄和指针的转换
      1) 一般窗口对象都会有一个其对应的句柄变量,所以我们可以 取此对象的m_hWnd属性来得到句柄。
       2)使用GetSafeHwnd函数
       3) 可以使用FromHandle函数来通过句柄得到其想要的指针
      其他的一些方法:
      HWND GetForegroundWindow(VOID);
     GetActiveWindow 取当前活动窗口句柄
      AfxGetMainWnd 取主窗口句柄
      GetForegroundWindow 取前台窗口句柄
      FindWindow

2。上下文无关设备的句柄和指针的转换
      1)this-〉m_hDC
       2)CDC::GetSafeHdc 
        3) 可以使用FromHandle函数来通过句柄得到其想要的指针

3.Gdi对象的句柄和指针的转换
        1)this-〉m_hObject
         2)CGdiObject::GetSafeHandle
       3) 可以使用FromHandle函数来通过句柄得到其想要的指针

mfc 类之间的指针句柄转换 MFC 中各种句柄的获得、各种指针的获得,各种转换,方便开发查阅 立即下载

相关推荐

MFC句柄指针总结(

MFC句柄指针总结 MFC句柄指针总结 MFC句柄指针总结 MFC句柄指针总结

MFC句柄转换指针

假设现有一个对话框窗口,要获取该窗口内的一个编辑框控件的指针。方法:HWND hdlg = ::FindWindow(NULL,_T("DialogName"));//获取窗口句柄if(hdlg == NULL){MessageBox(_T("获取窗口句柄失败!"));return;}HWND hEdit = ::GetDlgItem(IDC_ENDIT1);...

weixin_34357928的博客 316

MFC获得各类指针句柄的方法

MFC获得各个类,控件,当前活动窗口的指针句柄

MFC中各个类的指针转换

<br /><br />得到主框架指针<br />CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;<br />CMainFrame *pMain=(CMainFrame *)AfxGetApp()->GetMainWnd();<br />CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd();<br />①AfxGetApp()获得theApp对象,访问成员m_pMainWnd或者函数GetM

zz的专栏 1149

VC中句柄指针、ID之间的转换

 win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量。从句柄指针 CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached. pWnd->Attach(hWnd)

2169

指针句柄的简单转换

编程过程中,常常会遇到或使用到指针句柄,这里简单说说有关指针句柄间的转换。        指针的使用在编程过程中至关重要,恰到好处并能正确无误的使用指针不但能够提高程序自身的运行效率,而且有助于节省程序执行所需要消耗的资源。指针对应着某个数据在内存空间中的地址,得到了指针就可以自由地修改该数据。句柄代表指针的“指针”,也可以将其比作表中数据项的索引值( 表对应某个进程自身的内存空间 )。句

风生水起 2092

MFC中对象、句柄、ID之间的区别.

Windows程序中,有各种各样的资源(窗口、图标、光标),系统在创建这些资源的时候会为他们分配内存,并返回标识这些资源的标识号,即句柄HANDLE(ID)。图标句柄(HICON)、光标句柄(HCURSOR)、画刷句柄(HBRUSH)。 为什么有个窗口对象还要窗口句柄呢?还有什么线程句柄,甚至还有控件ID进程ID呢?MFC中的对象,比如应用程序对象,视图对象等,是对象就会占用内存空间,我们就可以用指针指向此对象进行访问,但windows还提供了句柄访问,初看好像有点多余,实则不然。如果我们一个进程想访问

s13596191285的博客 1052

MFC句柄指针、ID三者转换

win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量。 从句柄指针  CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached.  pWnd->Attach(hW

FAR0001的专栏 1082

MFC:窗口指针、窗口句柄窗口ID的相互转换

接触MFC一段时间了,发现在进行窗口操作时,最频繁使用的就是指针句柄ID的相互转换了,总结了一套方法如下: 假设对于同一个窗口而言,其指针是pWnd,句柄是hWnd,ID是nID,那么三者相互转换了方法如下: 指针->句柄:hWnd = pWnd->GetSafeHwnd(); ID->句柄:hWnd = ::GetDlgItem(hParentWnd, ID); 句柄->指针:p

jigetage的专栏 5407

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

MFC中获取各个窗口之间的句柄或者指针对象的方法 MFC在非常多的对话框操作中,我们常常要用到在一个对话框中调用还有一个对话框的函数或变量.能够用例如以下方法来解决.    HWND hWnd=::FindWindow(NULL,_T("Sphere"));      //得到对话框的句柄    C***Dialog* pWnd= (C***Dialog*)C***Dialog::F

Milu_Y 568

MFC _窗口ID,句柄指针三者相互转换函数

ID--HANDLE--HWND三者之间的互相转换 id->句柄        hWnd = ::GetDlgItem(hParentWnd,id); id->指针        CWnd::GetDlgItem(); 句柄->id        id = GetWindowLong(hWnd,GWL_ID); 句柄->指针    CWnd *pWnd=CWnd::FromHandle(h

aqaya的专栏 777

基于MFC根据句柄关闭窗口

基于MFC 根据句柄来关闭电脑上开着的窗口

mfc 找出一个窗口中的所有控件句柄_MFC中获取各个窗口之间的句柄或者指针对象的方法...

win32直接操作的是句柄HANDLE。每一个句柄就相应windows窗体,而vc对HANDLE进行类封装,间接操作的都是HANDLE,如今句柄仅仅是类的一个成员变量。从句柄指针CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached.pWnd->Attach(hWnd); ...

weixin_31881743的博客 1108

MFC获取各窗口指针句柄

MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决. HWND hWnd=::FindWindow(NULL,_T("Sphere")); //得到对话框的句柄 C***Dialog* pWnd= (C***Dialog*)C***Dialog::FromHandle(hWnd); //由句柄得到对话框的对象指针...

210

VC++中有关句柄指针及其转换

 VC++中有关句柄指针及其转换1.MFC窗口的句柄指针转换      (1) 一般窗口对象都会有一个其对应的句柄变量,所以我们可以取此对象的m_hWnd属性来得到句柄。      (2)使用GetSafeHwnd函数取得程序所在窗口类的句柄      (3)使用FromHandle函数来通过句柄得到其想要的指针      其他的一些方法:      GetActiveWindow

lovegod12的专栏 2855

MFC中获取各个窗口(对话框)之间的指针、对象、句柄

https://blog.csdn.net/lihui126/article/details/43340695 MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决. HWND hWnd=::FindWindow(NULL,_T("Sphere")); //得到对话框的句柄 C***Dialog* pWnd= (C...

active2489595970的博客 2483

MFC中获取各个窗体之间的句柄或者指针对象的方法

MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决. HWND hWnd=::FindWindow(NULL,_T("Sphere")); //得到对话框的句柄 C***Dialog* pWnd= (C***Dialog*)C***Dialog::FromHandle(hWnd); //由句柄得到对话框的对象指针 ...

323
william_wchg
博客等级 码龄19年 2粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值