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);
}

转载于:https://www.cnblogs.com/longcheng2012/archive/2012/11/05/2754511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值