按下鼠标时,记录下鼠标在窗体上的坐标, 同时用一个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; 
}

C++ 无边框的拖动窗口代码的更多相关文章

  1. WPF 创建无边框的圆角窗口

    原文:WPF 创建无边框的圆角窗口 如题所述,在WPF中要创建一个没有边框且为圆角的窗体,有如下几步工作要进行: 第一步:去掉窗体默认样式的边框 首先将窗体的背景设为透明,将允许透明的属性设置为Tru ...

  2. Delphi无边框Form拖动

    用Delphi做登陆窗口,如果使用无边框Form,想要拖动窗口,可以在某个控件的OnMouseDown事件中写下以下代码 ReleaseCapture; Perform(WM_SYSCOMMAND, ...

  3. 36.QT-解决无边框界面拖动卡屏问题(附带源码)

    1.简介 看到很多才学QT的人都会问为啥无边框拖动为啥会花屏? 那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了, ...

  4. WPF无边框可拖动窗体

    下面主要记录下创建无边框窗体,并且可以拖动.这种窗体主要用于弹出小窗体时. <Window x:Class="WpfApplication1.MainWindow" xmln ...

  5. 2017年11月20日 WinForm窗体 窗口无边框可移动&&窗口阴影 控制窗口关闭/最小化

    弹框 MessageBox.Show(); 清空 clear() 字符串拼接 string 公共控件 button 按钮 checkbox 复选框 checklistbox 多个复选框 combobo ...

  6. OpenCV 学习笔记(16)open创建无边框的显示窗口

    https://blog.csdn.net/weixin_41794771/article/details/93198098 讲解地址 // 1获取窗口句柄 winName 窗口名字 HWND win ...

  7. C#中无边框窗体拖动

    //定义一个bool变量标识是否拖动窗体 private bool isMove = false; //记录鼠标的位置 private Point point; 定义的变量 /// <summa ...

  8. C#无边框窗体拖动代码

    1.重写 protected override void WndProc(ref Message m) { if (m.Msg == 163 && this.ClientRectang ...

  9. WPF无边框实现拖动效果

    这是在做弹幕的时候遇到的一个需求 透明背景,拖动弹幕=.= private void Window_MouseLeftButtonDown(object sender, MouseButtonEven ...

随机推荐

  1. MongoDB C#驱动:

    MongoDB C#驱动: http://xiaosheng.me/2016/09/15/article24 http://www.cnblogs.com/wuhuacong/p/5098348.ht ...

  2. Webpack探索【12】--- externals详解

    本文主要讲externals相关内容. https://segmentfault.com/a/1190000012113011

  3. 【题解】Coins(二进制拆分+bitset)

    [题解]Coins(二进制拆分+bitset) [vj] 俗话说得好,bitset大法吼啊 这道题要不是他多组数据卡死了我复杂度算出来等于九千多万的选手我还不会想这种好办法233 考虑转移的实质是怎样 ...

  4. B. Drazil and His Happy Friends

    这是 Codeforces Round #292 (Div. 2)的一道题,原题在这里,题意就是: 小明有n个男同学(编号为 0 ~ n-1)和m个女同学 (编号为 0 ~ m-1),小明要安排男女之 ...

  5. STM32 FSMC学习笔记+补充(LCD的FSMC配置)

    STM32 FSMC学习笔记+补充(LCD的FSMC配置) STM32 FSMC学习笔记 STM32 FSMC的用法--LCD

  6. 构建工具是如何用 node 操作 html/js/css/md 文件的

    构建工具是如何用 node 操作 html/js/css/md 文件的 从本质上来说,html/js/css/md ... 源代码文件都是文本文件,文本文件的内容都是字符串,对文本文件的操作其实就是对 ...

  7. g2o求解BA 第10章

    1.g2o_bal_class.h1.1 projection.hg2o还是用图模型和边,顶点就是相机和路标,边就是观测,就是像素坐标.只不过这里的相机是由旋转(3个参数,轴角形式,就是theta*n ...

  8. android 内存泄漏问题【转】

    本文转载自:http://www.voidcn.com/article/p-hbnuyfwz-ee.html 内存泄露问题在一些压力测试的场景很容易暴露,例如一些常用应用场景反复操作(eg:反复切换前 ...

  9. java.sql.SQLException: Access denied for user 'somebody'@'localhost' (using password: YES)

    用mybatis和spring整合时出现了一个错误: 我是在IntelliJ IDEA上整合Mybatis和Spring的,运行测试用例出现了如上错误. 红色的马赛克部分是我的名字. 问题是,我的数据 ...

  10. BZOJ 1650 [Usaco2006 Dec]River Hopscotch 跳石子:二分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1650 题意: 数轴上有n个石子,第i个石头的坐标为Di,现在要从0跳到L,每次条都从一个石 ...