MFC 小知识总结五

1 移动无标题对话框

  响应WM_NCHITTEST 消息


  1. LRESULT CTimeJishiDlg::OnNcHitTest(CPoint point)  
  2. {  
  3.     // TODO: 在此加入消息处理程序代码和/或调用默认值  
  4.   
  5.   
  6.     LRESULT res=CDialogEx::OnNcHitTest (point);  
  7.   
  8.     if (res==HTCLIENT)        //HTclient  落在客户区  
  9.     {  
  10.         res=HTCAPTION;    //返回标题栏资源  
  11.     }  
  12.   
  13.     return res;  
  14.   
  15.     //return CDialogEx::OnNcHitTest(point);  
  16. }  


2 动态创建CButton 

  1. m_pButtonCheckBox = new CButton();  
  2. m_pButtonCheckBox ->Create(_T(""), WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX, CRect(4,3,19,18), this, CHECK_BOX_BUTTON);  


3 给父窗体发送消息

  1. ::PostMessage(::GetParent(this->m_hWnd),UM_SELECT_ALL_CHECKBOX,0,0);  

4 CString 换行符

  1.         m_banjiInfoStr.Format (  
  2.                 _T("本班共同拥有:%d个学生\r\n\  
  3. 当中男生:%d \r\n\  
  4.         女生:%d \r\n"),  
  5.                 count,  
  6.                 boyCount,  
  7.                 count-boyCount);  

5 获得系统高亮颜色

  1. pDC->FillSolidRect(&rcTemp, GetSysColor(COLOR_HIGHLIGHT)) ;  
  2. pDC->SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT)) ;  

获得缺省字体

  1. pDC->SelectObject(GetStockObject(DEFAULT_GUI_FONT));  

获得行数

  1. //得到行数 使得垂直居中  
  2. CString itemStr=lpBuffer;  
  3.     int iStrline=0;  
  4.   
  5.     int nStart=0;  
  6.     while(nStart!=-1){  
  7.         nStart=itemStr.Find(L"\n",nStart+1);  
  8.         iStrline++;  
  9.     }  

7 MoveWindow(x,y,cx,cy/)

   起始点 x,y

   宽度 cx

   高度 cy


8 响应右上角的关闭消息(X消息)

  X也是一个button他的ID是IDCANCEL 他向主窗体发送消息WM_CLOSE


posted on 2017-04-14 13:58  blfbuaa  阅读(174)  评论(0编辑  收藏  举报