HWND CWnd 等的互相转换

  • 在窗口类中要得到它的hwnd,以便操作SDK函数

    CWnd::GetSafeHwnd()
  • 要得到窗口指针CWnd*,使用全局函数

    AfxGetMainWnd( );
  • 要得到应用程序指针CWinApp*,使用全局函数
    AfxGetApp();
  • 要得到hInstance,使用MACRO

    GetWindowInstance(hwnd);//这个宏在WindowsX.h中//或者用raw API(HINSTANCE)GetWindowLong(Hwnd,GWL_HINSTANCE);
  • 从CWnd* 得到HWND
    m_pMainWnd->GetSafeHwnd();
  • 从HWND得到CWnd*
    CWnd* pWnd;pWnd->FromHandle(hwnd);

原文地址:https://www.cnblogs.com/presbyter/p/10355529.html

时间: 2025-01-18 04:13:17

HWND CWnd 等的互相转换的相关文章

HANDLE HINSTANCE HWND CWnd CDC

HANDLE HINSTANCE HWND CWnd CDC 句柄:   柄,把柄 例如一个锅的手柄,你只要抓住了它,你就可以很好地操作那个锅,不过很明显你只能通过锅的手柄来做一些诸如炒菜之类的事,你不可能是因为抓住了锅的手柄才能去看电视.不能的物体都会至少有一个属于它的"手柄". 句柄是一种指向指针的指针.所谓指针是一种内存地址.应用程序启动后,组成这个程序的各对象是住留在内存的.如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象.但是,Windows

HWND CWND 转换

一.区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄.这是一个SDK概念.   CWnd是MFC类库中所有窗口类的基类.微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员. 二.如何得到窗口对象指针CWnd * pCWnd1,在窗体里,直接用 this->,//this就是本窗体的窗口对象指针2,主窗体的类对象指针:

CWnd与HWND的简单辨析

今天在写一个小的网络应用,需要用到HWND类型的一个参数.而程序中有的“窗口操作句柄”只有一个CWnd类型的指针.这俩不都是“窗口句柄”么?而且反正都是地址直接转换使用如何?结果出现了调用失效的情况.别处自信不会出错,问题只能出在这个参数上了.可是这两个不都是“窗口句柄“?! 既然我加了双引号,显然后来明白了,这显然不是正解.那么怎么解释和区别两者?又怎么灵活使用两者?由于技术水平限制,在此仅仅做简单区分,灵活使用等到我称为伪大神时,再做深究.好,废话少说,进入正题. 首先转载一段文章: ***

MFC浅析(7) CWnd类虚函数的调用时机、缺省实现

CWnd类虚函数的调用时机.缺省实现 FMD(http://www.fmdstudio.net) 1. Create 2. PreCreateWindow 3. PreSubclassWindow 4. PreTranslateMessage 5. WindowProc 6. OnCommand 7. OnNotify 8. OnChildNotify 9. DefWindowProc 10. DestroyWindow 11. PostNcDestroy CWnd作为MFC中最基本的与窗口打交

CWnd类

CWnd类的成员 1.数据成员 m_hWnd 指明与这个CWnd对象相关联的HWND句柄 2.构造和析构 CWnd 构造一个CWnd对象 DestroyWindow 销毁相关联的Windows窗口 3.初始化 Create 创建并初始化与CWnd对象相关联的子窗口 PreCreateWindow 在与CWnd对象相关联的窗口被创建之前调用 CalcWindowRect 调用这个函数以计算窗口客户区的矩形 GetStyle 返回当前的窗口风格 GetExStyle 返回窗口的扩展风格 Attach

MFC CWnd

CWnd //获得窗口句柄 //1 CWnd *pWnd = GetDlgItem(IDC_BIN); //2 HWND hButton = pWnd->m_hWnd; //3 HWND hButton = GetDlgItem(IDC_BIN)->GetSafeWnd(); //干掉窗口 CWnd *pWnd = GetDlgItem(IDC_BIN); pWnd->CloseWindow(); pWnd->DestroyWindow(); //居中 CWnd *pWnd = G

【转】MFC窗口句柄各类指针获取函数

原文网址:http://www.pythonschool.com/CPP_JHK/5003.html 获取所在类窗口的句柄 this->m_hwnd; // this是一个指针,指向当前类的实例 主窗口的句柄,获取自身窗口句柄 AfxGetMainWnd()->m_hWnd; // 在主窗口类中,或是子窗口类中,获取主窗口句柄的方法 如:::SendMessage(AfxGetMainWnd()->m_hWnd , WM_MY_DOSOME , 0 ,(LPARAM)i); this-&

深度解析VC中的消息传递机制

摘要:Windows编程和Dos编程,一个很大的区别就是,Windows编程是事件驱动,消息传递的.所以,要学好Windows编程,必须 对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的分析. 一.什么是消息? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定 义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键 都会使Windows发送一个

win 消息

Windows消息机制概述 消息是指什么?     消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.    消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标.这个