关于句柄

获取窗口句柄(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),却无法启动那个线程?我应该怎么办?

posted @ 2009-11-10 18:11  ~笑  阅读(226)  评论(0编辑  收藏  举报