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

  • 相关阅读:
    jdk-8u271-windows-x64
    wps 2019 专业版最新激活密匙
    未分页内存泄露
    Nonpaged Pool(未分页池)占用内存过多分析定位
    python异常处理
    如何开发在线考试系统
    kvm学习
    MySQL安全审计-等保2.0
    Linux下启动/关闭Oracle
    rocketmq systemctl 启动
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4052893.html
Copyright © 2011-2022 走看看