zoukankan      html  css  js  c++  java
  • C++ 无边框的拖动窗口代码

    按下鼠标时,记录下鼠标在窗体上的坐标, 同时用一个BOOL变量记录下鼠标左键按下的状态

    弹起左键,则记录状态的布尔变量为FALSE.

    处理鼠标移动事件,如果左键同时按下,则为鼠标拖动窗体运动,设置窗体新的左上角坐标。

    view plaincopy to clipboardprint?
    ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······15001.void CNoBorderFormDlg::OnMouseMove(UINT nFlags, CPoint point) 

        // TODO: 在此添加消息处理程序代码和/或调用默认值 
     
        CDialog::OnMouseMove(nFlags, point); 
        if (this->_leftButtonDown) 
        { 
           /// 鼠标左键按下时,可以拖动窗体 
            CPoint pointChanged = point - (this->_mousePoint); 
            RECT rect; 
            this->GetWindowRect(&rect); 
            this->SetWindowPos(NULL, rect.left pointChanged.x, rect.top pointChanged.y, 0, 0, SWP_NOSIZE); 
        } 

    void CNoBorderFormDlg::OnLButtonDown(UINT nFlags, CPoint point) 

        // TODO: 在此添加消息处理程序代码和/或调用默认值 

        CDialog::OnLButtonDown(nFlags, point); 
        this->_leftButtonDown = TRUE; 
        this->_mousePoint = CPoint(point); 

     
    void CNoBorderFormDlg::OnLButtonUp(UINT nFlags, CPoint point) 

       // TODO: 在此添加消息处理程序代码和/或调用默认值 
     
        CDialog::OnLButtonUp(nFlags, point); 
        this->_leftButtonDown = FALSE; 

     
    void CNoBorderFormDlg::OnMouseLeave() 

        // TODO: 在此添加消息处理程序代码和/或调用默认值 
        CDialog::OnMouseLeave(); 
        this->_leftButtonDown = FALSE; 
    }

  • 相关阅读:
    【PAT甲级】1034 Head of a Gang (30分):图的遍历DFS
    循环的嵌套
    0.1+07 !=0.8的原因
    java script-页面交互
    java script-逻辑分支
    java script-数据类型转换&&运算符
    java script概述
    浏览器内核
    网格布局
    让一个元素在父元素上下左右居中
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4052893.html
Copyright © 2011-2022 走看看