zoukankan      html  css  js  c++  java
  • 在对话框上拖动按钮并移动该按钮(改写CXXButton::PreTranslateMessage,然后MoveWindow)

    [cpp] view plain copy
     
    1. // 派生自CButton类,主要过滤WM_LBUTTONDOWN 、WM_LBUTTONUP和WM_MOUSEMOVE消息。  
    2.   
    3. BOOL m_bFlag = FALSE; // 成员变量,用来标示鼠标是否按下, 初始化为FALSE  
    4. CPoint m_pt; // 成员变量,用来保存当前坐标值  
    5.   
    6. BOOL CXXButton::PreTranslateMessage(MSG* pMsg)   
    7. {  
    8.     // TODO: Add your specialized code here and/or call the base class  
    9.     switch(pMsg->message)  
    10.     {  
    11.     case WM_LBUTTONDOWN:  
    12.         {  
    13.             m_pt = pMsg->pt;  
    14.             m_bFlag = TRUE;  
    15.         }  
    16.         break;  
    17.   
    18.     case WM_LBUTTONUP:  
    19.         {  
    20.             m_bFlag = FALSE;  
    21.         }  
    22.         break;  
    23.   
    24.     case WM_MOUSEMOVE:  
    25.         {  
    26.             if(m_bFlag)  
    27.             {  
    28.                 int cx = pMsg->pt.x - m_pt.x;  
    29.                 int cy = pMsg->pt.y - m_pt.y;  
    30.   
    31.                 CRect rc;  
    32.                 GetWindowRect(&rc);  
    33.                 GetParent()->ScreenToClient(&rc);  
    34.                 int nWidth = rc.Width();  
    35.                 int nHeight = rc.Height();  
    36.   
    37.                 rc.left += cx;  
    38.                 rc.top += cy;  
    39.                 rc.right = rc.left + nWidth;  
    40.                 rc.bottom = rc.top + nHeight;  
    41.   
    42.                 MoveWindow(rc);  
    43.   
    44.                 m_pt = pMsg->pt;  
    45.             }  
    46.         }  
    47.         break;  
    48.   
    49.     default:  
    50.         break;  
    51.     }  
    52.     return CButton::PreTranslateMessage(pMsg);  
    53. }  
    http://blog.csdn.net/visualeleven/article/details/7177775
  • 相关阅读:
    [bzoj3218] a+b problem [最小割+数据结构优化建图]
    [bzoj3456] 城市规划 [递推+多项式求逆]
    [ARC068F] Solitaire [DP]
    [bzoj3601] 一个人的数论 [莫比乌斯反演+高斯消元]
    [中山市选2011][bzoj2440] 完全平方数 [二分+莫比乌斯容斥]
    [bzoj2159] Crash的文明世界 [斯特林数+树形dp]
    [bzoj2839] 集合计数
    通用解题方法—回溯法
    分支限界法—单源最短路径问题
    分支限界法
  • 原文地址:https://www.cnblogs.com/findumars/p/6002441.html
Copyright © 2011-2022 走看看