MFC 窗口句柄获取

MFC之使用FindWindow函数获取指定窗口句柄进行窗口操作(实测:关闭Windows的格式化弹窗) 方法一: 1、使用FindWindow之前需先将操作窗口的类名或窗口名用RegisterClass函数进行注册 WNDCLASS m_WindClass1; m_WindClass1.lpszClassName = _T("Microsoft Windows"); ::RegisterClass(&m_WindClass1); 获取窗口类名或窗口名的方法(https://j... 阅读详情
句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息、处理程序):0。获取所在类窗口的句柄:
this->m_hwnd
1。主窗口的句柄:
无论在主窗口类内,还是子窗口类内,获取主窗口句柄的方法:
AfxGetMainWnd()->m_hWnd,
如:::SendMessage(AfxGetMainWnd()->m_hWnd , WM_MY_DOSOME , 0 ,(LPARAM)i);
在窗口类中
this->m_hWnd
或者this->GetSafeHwnd()

2。子窗口句柄:用FindWindow,(只要知道子窗口的名字即可)如:
 ::FindWindow(NULL,WindowsName) 
返回找到的窗口的句柄
寻找当前窗口是否在运行windowname的程序,该名字为窗口名字,如:
CWnd* pWnd=FindWindow(NULL,_T("清芝--支票机"));//

GetSafeHwnd
函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数。
通过下面的例子来看其理由:
  CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器
  HWND hwnd = pwnd->m_hwnd; //得到它的HWND
  这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码:
  CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器
  HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
  就不会出现问题,因为尽管当pwnd是NULL时,GetSafeHwnd仍然可以用,只是返回NULL

源文档 <http://blog.csdn.net/luheng2006/article/details/5897643> 

3。获取窗口中 控件的句柄,用 GetDlgItem
语法为:GetDlgItem(IDC_COMBO3)->m_hWnd :参数为 该控件的ID,返回值为:CWnd* 类型,但它是CWnd类内的函数,因此要先获取控件所在窗口的指针,如:
CString str(_T("dd"));
::SendMessage(AfxGetMainWnd()->GetDlgItem(IDC_COMBO3)->m_hWnd, WM_SETTEXT , 0 , (LPARAM)str.GetBuffer(0));

从句柄获得指针,用 FromHandle
语法:CWnd* pWnd = CWnd::FromHandle(hWnd);
获取窗口句柄(全集) vc&MFC 
获得窗口句柄:
this->m_hwnd
HWND GetForegroundWindow(VOID);
GetSafehWnd 取你程序所在窗口类的句柄
GetActiveWindow 取当前活动窗口句柄
AfxGetMainWnd 取主窗口句柄
GetForegroundWindow 取前台窗口句柄
FindWindow
EnumWindow
MFC - 获取MainFrame,Doc,View,App等指针的方法 一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。 下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。 首先一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。在View中获得Doc指针 CYouSDIDoc *pDoc=GetDocument(); 注意:SDI模 阅读详情

相关推荐

MFC】AfxGetMainWnd()函数使用心得

关于AfxGetMainWnd()函数的通常认识: 1、使用AfxGetMainWnd()函数获取MFC程序中的主框架类指针是一个常用作法。 2、获得应用程序主窗口的指针的方法,AfxGetMainWnd()->m_hWnd或者AfxGetMainWnd()->GetSafeHwnd()。 但是,在用户线程中调用AfxGetMainWnd()函数好像就不灵了,为什么? 调...

sunriver2000的专栏 6490

MFC 获取窗口句柄

每个窗口类的CWnd *hwnd指针中封装了该窗口句柄m_hWnd,直接hwnd->m_hWnd即可得到该窗口句柄。HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd。

weixin_46047677的博客 2318

AfxGetMainWnd 函数

AfxGetMainWnd( ): 使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法。 就是获得应用程序主窗口的指针,AfxGetMainWnd()-> m_hWnd是主窗口句柄。 关于好多MFC的函数都有Afx开头: Application Frameworks 应用程序框架 这是MS最早想统一各种平台C++开

积累点滴,保持自我 9549

mfc获取窗口句柄

本节为VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法:  GET App     AfxGetInstanceHandle()     AfxGetApp()  GET Frame->View->Document      SDI   AfxGetMainWnd() -> GetActiveView() -> GetDocument()      MDI

zhengliuguo的专栏 3917

MFC窗口类、句柄获取

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

weixin_43424867的博客 3870

MFC获取窗口句柄及相关函数

一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针和句柄获取和操作问题。本文中将针对各类句柄的获得、指针的获得以及MFC中常见应用进行阐述并举例。 本文内容索引: ========================================================= MFC获取

xiaoyun8822的专栏 2万+

MFC框架中获取窗口/视图句柄

1 获取窗口句柄(用得较多的为:AfxGetApp()): 在CMainFrame(窗口)类中,可以用HWND m_hWnd; m_hWnd = AfxGetMainWnd()->m_hWnd;  取得窗口句柄,如果在窗口类中获得一控件的句柄,可以用:GetDlgItem(

牟云者的专栏 3419

MFC 获取当前窗口句柄,或者父子窗口句柄

父子窗口 在子窗口中,需要用到父窗口句柄: AfxGetMainWnd()->m_hWnd 注:在父窗口中,也可以这么用来调用自己窗口句柄 在子窗口中,需要用到自己窗口句柄 ChildDlg *pChildDlg ; pChildDlg->m_hWnd   注:在自己窗口中,要用自己窗口句柄,便是先获得窗口对象的指针,然后直接指向m_hWnd,便是句柄

fhplzh的专栏 1万+

mfc获取其它程序窗口句柄

const char *getWindowTitle(HWND hWnd){ char WindowTitle[1000]={0}; ::GetWindowText(hWnd,WindowTitle,1000); std::string *title = new std::string(WindowTitle); return (*title).c_str();

zwcwu31的专栏 5068

MFC获取窗口句柄

<br />要找到某个CWnd对象的HWND,用GetSafeHwnd()。<br /> <br />在窗口类中,有句柄的成员变量,可以直接访问:   m_hWnd   <br />  在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。<br /> <br /> 在MainFrame里直接用this;   <br />  其它地方用   <br />  CMainFrame*   pMainFrame   =   (CMainFrame*)theApp.m_pMainWnd;   <br

tigerMayDo的专栏 881

mfc 找出一个窗口中的所有控件句柄_MFC中怎样获取指定窗口句柄

2016-12-06 回答句柄获取方法(获取窗口句柄后,即可向该窗口类类发送消息、处理程序):0。获取所在类窗口句柄:this->m_hwnd1。主窗口句柄:无论在主窗口类内,还是子窗口类内,获取窗口句柄的方法:afxgetmainwnd()->m_hwnd,如:::sendmessage(afxgetmainwnd()->m_hwnd,wm_my_dosome,...

weixin_26802933的博客 1542

MFC 获取当前活动窗口句柄

::AfxGetApp()-> GetMainWnd()->GetSafeHwnd()和::AfxGetMainWnd()->GetSafeHwnd()单线程中两个函数的结果是相同的。 如果是多线程则不同。前者是主线程的。 后者是单前所在的线程的。AfxGetApp( )是全局的。AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。如果子线程只是一个函数线程的话,在其内使用 ::AfxGetMainWnd()->GetSafeHwnd

黑色星辰 1万+

mfc获取窗口句柄_空白窗口

流程介绍创建一个窗口一共需要6步:注册类创建窗口获取句柄进入回调显示窗口更新窗口获取消息代码解释在注册类之前我们先要建立基本的代码框架,也就是编写WinMain函数,这是Windows窗口程序的入口函数名,相当于控制台下的main函数,WinMain的定义为:int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR ...

weixin_39891317的博客 803

c语言 取窗口句柄,MFC获取句柄的方法

句柄获取方法(获取窗口句柄后,即可向该窗口类类发送消息、处理程序):例如:::PostMessage("句柄",WM_USER_DRAWVIEWPIC_EDS,0,0);0。获取所在类窗口句柄:this->m_hwnd1。主窗口句柄:无论在主窗口类内,还是子窗口类内,获取窗口句柄的方法:AfxGetMainWnd()->m_hWnd,如:::SendMessage(Af...

weixin_33199315的博客 4224

MFC获取窗口句柄方法总结

    MFC中,经常会用到窗口句柄和指针,现将经常用到的几种窗口句柄、指针总结如下:     要找到某个CWnd对象的HWND,用GetSafeHwnd()。     在窗口类中,有句柄的成员变量,可以直接访问:   m_hWnd       窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。     在MainFrame里直接用this;      

Udmyth的专栏 1717
上一篇: enter 指令分析
下一篇: 用GetSystemMetrics函数获取系统分辨率
laogaoAV
博客等级 码龄14年 98粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值