获取窗口句柄(VC)的几种方法
在VC++编程中常需获取控件或窗体句柄,几种方法。
1、自身窗口句柄可用AfxGetMainWnd获取。
2、系统中其他APP的窗口句柄可用FindWindow获取(用SPY帮一下忙).
HWND hBtnClose;
HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");
if(hWnd)
{
hBtnClose=GetDlgItem(hWnd,2);
if(hBtnClose)
PostMessage(hBtnClose,BM_CLICK,NULL,NULL);
}
3、通过指针获取窗口句柄
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
4、当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,
最安全的方法是使用GetSafeHwnd()函数;
5、HWND GetDlgltem(HWND hDlg,int nlDDlgltem);
6、通过控件ID号获取。
CListCtrl* pleftList = (CListCtrl* )GetDlgItem(IDC_LIST1);
终止其它线程
要用TerminateThread(),必须有线程句柄,我已经获得了CWinThread *m_pThread,通过m_pThread->m_hThread可以很容易获得句柄。
但是现在的问题是:
我终止了正在运行的那个线程后,再一次想开启那个线程(仍然调用AfxBeginThread),却无法启动那个线程?我应该怎么办?