`
hanyezhiyu8
  • 浏览: 153641 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

CWnd与HWND的区别与转换

阅读更多

一、区别
HWND是句柄,CWnd是
MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.
HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。  
CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。
二、如何得到窗口对象指针CWnd * pCWnd
1,在窗体里,直接用 this->,//this就是本窗体的窗口对象指针
2,主窗体的类对象指针:AfxGetApp()->m_pMainWnd->,  //AfxGetApp()->m_pMainWnd就是主窗体的窗口对象指针
3,pCWnd=GetDlgItem(ID_EDIT_NAME);//GetDlgItem 函数可以得到某个
控件的窗口对象指针

三、如何得到窗口句柄 HWND Handle
1,Handle=this->m_hWnd
2,GetDlgItem(ID_EDIT_NAME);
3,Handle=::GetDlgItem(this,IDC_STATIC_MODE); //得到本窗体内某个控件的句柄

四、转换
CWnd * pCWnd;
HWND Handle;
pCWnd=FromHandle(Handle);
Handle=GetSafeHwnd(pCWnd);

 

转自:http://blog.163.com/kaweh.candy/blog/static/368187722007985413128/

分享到:
评论

相关推荐

    怎样将CWnd转换为HWND和HWND转换为CWnd

    怎样将CWnd转换为HWND和HWND转换为CWnd

    wince 图片类

    BOOL ReShow(CString pImageIn, CString pImageOut,CRect rect,int sleep,CWnd* hwnd,IImage * BKImg); private: IImagingFactory *pIImgFactory; public: void RotateImageBuf(const BYTE* src, int srcWidth, ...

    VC进程ID获得主窗口句柄获得进程名

    用CWnd::FromHandle(HWND hWnd)函数.很多类都有这个函数. 4.进程名 进程ID (注:进程名,即在"任务管理器"中看到的名字) 用CCheckObject类(详细实现源文件); 例子: 以记事本为例,进程名为 NOTEPAD.EXE (不...

    VC中CDC、HDC、pDC区别与联系及相互转换

    1.CDC *pDC和HDC hdc有什么不同,类似的有CWnd *pWnd和HWnd? pDC是类指针 HDC是windows句柄 通过pDC获得hdc: HDC hdc=pDC->GetSafeHdc(); 通过hdc获得pDC: CDC *pDC=new CDC; pDC->Attach(hdc); 2.hDC和CDC有本质区别...

    MFC的程序框架剖析

    们之间的纽带仅仅在于这个C++窗口类内部的成员变量m_hWnd,该变量保存了与这个C++窗口类对象相关的哪个窗口 的句柄 (3)但是,当C++窗口类对象销毁时,与之相关的窗口也将销毁,因为它们之间的纽带m_hWnd已经断了 3、...

    如何用mFC来实现斜面小球滚动动画

    CWnd *pView = CWnd::FromHandle(hWnd); if(pView == NULL) return false; //set graphic view''s radius in order to painting ((CGraphicView*)pView)->SetRadius(m_fRadius); bPaintSphere = true;//set ...

    《精通Visual C++实效编程280例》光盘源代码

     1.1 实例1:通过HWND获得CWnd指针   1.2 实例2:获得应用程序主窗口的指针   1.3 实例3:获得指定点的窗口   1.4 实例4:最大化和最小化窗口   1.5 实例5:关闭窗口   1.6 实例6:设置窗口的大小...

    MFC制作的MP3

    void Mp3::Load(HWND hwnd,CString Strfilepath) { m_hWnd=hwnd; mciSendCommand(DeviceID,MCI_CLOSE,0,0); //¼ÓÔØÎļþÇ°ÏÈÇå³ýÉÏ´ÎÉèÖà mciopenparms.lpstrElementName=Strfilepath;//...

    VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:

    表2 nCtlColor的类型值与含义 作为一个简单的例子,观察以下的代码: BOOL CUi5Dlg::OnInitDialog() { //… //创建字体 //CFont CUi1View::m_Font1, CUi1View::m_Font2 m_Font1.CreatePointFont(120, "Impact...

    VISUAL C++实效编程280例

    1.1 实例1:通过HWND获得CWnd指针 1.2 实例2:获得应用程序主窗口的指针 1.3 实例3:获得指定点的窗口 1.4 实例4:最大化和最小化窗口 1.5 实例5:关闭窗口 1.6 实例6:设置窗口的大小和位置 1.7 实例7:居中显示...

    易语言-易语言编写支持库模版,组件、命令、常量等

    更新内容只声明与支持库相关的更新 当前版本:2014.11.28 更新内容: [+]更新FNE转LIB工具(V1.0) ★主要为本次模版更新而更新 [!]删除对组件英文名称的修改 ★源:如果【静态库模式=#静态库模式_WonderWall】, 那么...

    C++MFC教程

    LONG yourWndProc(HWND hWnd,UINT uMessageType,WPARAM wP,LPARAM) { switch(uMessageType) { //使用SWITCH语句将各种消息分开 case(WM_PAINT): doYourWindow(...);//在窗口需要重新绘制时进行输出 break; ...

Global site tag (gtag.js) - Google Analytics