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

2016-12-06 回答

句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息、处理程序):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

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

相关资源:用PS软件给别人腿部增加丝袜裤–HP其他资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月12日
下一篇 2021年1月12日

相关推荐