NMHDR = Notify Message Handler

NMHDR   =   Notify   Message   Handler

 

NMHDR   结构包含下列成员: 
  typedef   struct   tagNMHDR   { 
  HWND   hwndFrom;     //   handle   of   control   sending   message 
  UINT   idFrom;//   identifier   of   control   sending   message 
  UINT   code;     //   notification   code;   see   below 
  }   NMHDR; 
  
  消息通过下面的宏定义之: 
  ON_NOTIFY(   wNotifyCode,   idControl,   memberFxn   ) 
  wNotifyCode   
  通知消息标识符代码,如   TBN_BEGINADJUST。   
  idControl   
  发送通知的控件的标识符。   
  memberFxn   
  接收到通知时调用的成员函数。   
  
  成员函数将用下列原型声明: 
  afx_msg   void   memberFxn(   NMHDR   *   pNotifyStruct,   LRESULT   *   result   ); 

 

在WM_NOTIFY中,lParam中放的是一个称为NMHDR结构的指针。在wParam中放的则是控件的ID。 

 

 

 

举例://得到选中的列

void   CMyView::OnColumnclick(NMHDR*   pNMHDR,   LRESULT*   pResult)   
  {       
  NM_LISTVIEW*   pNMListView   =   (NM_LISTVIEW*)pNMHDR; 
    

//得到选中的列      
  column=pNMListView->iSubItem;  

}

 

 

void CBillDlg2::OnGridEndEdit(NMHDR *pNotifyStruct ,LRESULT *pResult)//响应控件通知消息GVN_ENDLABELEDIT
{//自定义这个消息响应函数
  if(m_showbill)//控制显示对话框
  return ;
  /*typedef   struct   tagNMHDR  
  {  
          HWND     hwndFrom;  
          UINT     idFrom;  
          UINT     code;                   //   NM_   code  
  }      NMHDR; */  

  NM_GRIDVIEW *pitem=(NM_GRIDVIEW *)pNotifyStruct;
  if(pitem->iRow<0)
   return ;
 
  if(pitem->iColumn==m_nAmountCol||pitem->iColumn==m_nPriceCol)
  {
    CString  strAmount;
 CString  strPrice;
 strAmount=m_Grid.GetItemText(pitem->iRow,m_nAmountCol);
 strPrice=m_Grid.GetItemText(pitem->iRow,m_nPriceCol);
 int nAmount=atoi(strAmount);
 if(nAmount<=0)
  return;
 float fPrice=atof(strPrice);
 if(fPrice<=0)
 

 return;

 double dmoney=fPrice*(double)nAmount;
 CString  strMoney;
    strMoney.Format("%f",dmoney);
 m_Grid.SetItemText(pitem->iRow,m_nMoneyCol,strMoney);


  }

m_Grid.Refresh();

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/markman101/archive/2008/12/23/3591355.aspx

你可能感兴趣的:(NMHDR = Notify Message Handler)