您的位置:首页 > 其它

得到当前窗口句柄

2013-05-27 09:53 288 查看
HWND hwnd;
hwnd=CreateWindow("my own windowshandle","jaycnvip",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
这是用一个句柄变量来保存新创建的窗口句柄。

其它如:
通过窗口标题获取窗口句柄
CWnd *pWnd = FindWindow(_T("#32770"), _T("QQ用户登录"));

CWnd有个成员函数
HWND GetSafeHwnd( ) const;

在对话框类的成员函数里用
HWND hwnd = GetSafeHwnd();
得到的hwnd就是句柄了


::AfxGetApp()-> GetMainWnd()->GetSafeHwnd()和::AfxGetMainWnd()->GetSafeHwnd()

单线程中两个函数的结果是相同的。

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

GetActiveWindow

函数功能:该函数可以获得与调用线程的消息队列相关的活动窗口的窗口句柄。   函数原型:HWND GetActiveWindow(VOID)  参数:无。  返回值:返回值是与调用线程的消息队列相关的活动窗口的句柄。否则,返回值为NULL。如果在主窗口线程中使用,则获取的是该窗口句柄,若在函数子线程内使用,则为NULL 全局回调函数中如何获得当前对话框住工程的句柄 CWnd*dlg = AfxGetMainWnd();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: