ID--HANDLE--HWND三者之間的互相轉換(轉)


ID--HANDLE--HWND三者之間的互相轉換
id->句柄、、、、、hWnd = ::GetDlgItem(hParentWnd,id);
id->指針、、、、、CWnd::GetDlgItem();
句柄->id、、、、、id = GetWindowLong(hWnd,GWL_ID);
句柄->指針、、、、CWnd *pWnd=CWnd::FromHandle(hWnd);
指針->ID、、、、、id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID);
指針->句柄、、、、hWnd=cWnd.GetSafeHandle() or mywnd->m_hWnd;

 

例程:

方法1:

BOOL AcameraCT::PreTranslateMessage(MSG* pMsg)
{
  int buID;
 buID= GetWindowLong(pMsg->hwnd,GWL_ID);//由窗口句柄獲得ID號,GetWindowLong為獲得窗口的ID號。
  if(pMsg->message==WM_LBUTTONDOWN) 
 {     
  if(buID==IDC_BUTTON_CT1) //按下
  {  
   //在這里添加單擊按下事件的程序
  } 
 }
 if(pMsg->message==WM_LBUTTONUP) 
 { 
  if(buID==IDC_BUTTON_CT1)
  {  
   //在這里添加單擊松開事件的程序
  } 
 }
 return CDialog::PreTranslateMessage(pMsg);
}

 

方法2:

BOOL AcameraCT::PreTranslateMessage(MSG* pMsg)
{
  int buID;
 CWnd* pWnd=WindowFromPoint(pMsg->pt); //獲得指定點句柄
 buID=pWnd->GetDlgCtrlID();//獲得該句柄的ID號。
  if(pMsg->message==WM_LBUTTONDOWN) 
 {     
  if(buID==IDC_BUTTON_CT1) //按下
  {  
   //在這里添加單擊按下事件的程序
  } 
 }
 if(pMsg->message==WM_LBUTTONUP) 
 { 
  if(buID==IDC_BUTTON_CT1)
  {  
   //在這里添加單擊松開事件的程序
  } 
 }
 return CDialog::PreTranslateMessage(pMsg);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM