如何获取QQ华夏里小窗口的句柄?如果无法获取窗口句柄...

获取窗口的句柄方法总结 - 博客频道 - CSDN.NET
疯狂挖掘机的博客
发表一些关于MFC的内容,也当是自己学习的总结

句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息、处理程序):
例如:::PostMessage(&句柄&,&WM_USER_DRAWVIEWPIC_EDS,&0,&0);
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
  这样的代码当开始得到的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
排名:千里之外
对于优秀的文章,资源的分享Qt如何获得别的窗口的句柄?
[问题点数:60分]
Qt如何获得别的窗口的句柄?
[问题点数:60分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年8月 移动平台大版内专家分月排行榜第二2013年4月 移动平台大版内专家分月排行榜第二
2013年5月 移动平台大版内专家分月排行榜第三
2010年12月 移动平台大版内专家分月排行榜第二2010年11月 移动平台大版内专家分月排行榜第二
2011年5月 移动平台大版内专家分月排行榜第三2011年4月 移动平台大版内专家分月排行榜第三2011年3月 移动平台大版内专家分月排行榜第三
2010年12月 移动平台大版内专家分月排行榜第二2010年11月 移动平台大版内专家分月排行榜第二
2011年5月 移动平台大版内专家分月排行榜第三2011年4月 移动平台大版内专家分月排行榜第三2011年3月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。5597人阅读
界面编程(8)
hwnd=CreateWindow(&my own windowshandle&,&jaycnvip&,WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
这是用一个句柄变量来保存新创建的窗口句柄。
通过窗口标题获取窗口句柄
CWnd *pWnd = FindWindow(_T(耂&), _T(&QQ用户登录&));
CWnd有个成员函数
HWND GetSafeHwnd( )
在对话框类的成员函数里用
HWND hwnd = GetSafeHwnd();
得到的hwnd就是句柄了
::AfxGetApp()-& GetMainWnd()-&GetSafeHwnd()和::AfxGetMainWnd()-&GetSafeHwnd()
单线程中两个函数的结果是相同的。&
如果是多线程则不同。前者是主线程的。&
后者是单前所在的线程的。AfxGetApp( )是全局的。
AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。如果子线程只是一个函数线程的话,在其内使用 ::AfxGetMainWnd()-&GetSafeHwnd() 结果为 NULL.&GetActiveWindow&&&&&&& 函数功能:该函数可以获得与调用线程的消息队列相关的活动窗口的窗口句柄。  &&&&&&& 函数原型:HWND GetActiveWindow(VOID)  参数:无。  返回值:返回值是与调用线程的消息队列相关的活动窗口的句柄。否则,返回值为NULL。如果在主窗口线程中使用,则获取的是该窗口句柄,若在函数子线程内使用,则为NULL
全局回调函数中如何获得当前对话框住工程的句柄
CWnd*dlg&=&AfxGetMainWnd();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:33826次
排名:千里之外
原创:22篇
转载:18篇
(1)(2)(4)(19)(14)VC获取窗口句柄后为什么无法立即隐藏该窗口?
[问题点数:40分,结帖人lwandxiao]
VC获取窗口句柄后为什么无法立即隐藏该窗口?
[问题点数:40分,结帖人lwandxiao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。如何通过窗口的句柄获取窗口的实例
[问题点数:40分,结帖人eguxlqly]
如何通过窗口的句柄获取窗口的实例
[问题点数:40分,结帖人eguxlqly]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第二2011年12月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第三2011年9月 Delphi大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

参考资料

 

随机推荐