浅谈无标题窗口的拖放

2016-02-19 13:59 2 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐浅谈无标题窗口的拖放,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

    从微软的站点看到一个简单的方法实现,不必计算RECT,不必处理鼠标消息的细节和窗口绘制,就能轻松实现没有标题栏的窗口移动的问题,就是使用OnNcHitTest消息。

  手工增加该消息映射:

  用classwizard是无法增加该消息的,在BEGIN_MESSAGE_MAP中加入消息ON_WM_NCHITTEST(),然后在头文件中加入

   afx_msg UINT OnNcHitTest(CPoint point);

  在实现文件中,加入LBUTTONDOWN消息函数

   void CClyzDlg::OnLButtonDown(UINT nFlags, CPoint point)
  {
  CTranDialog::OnLButtonDown(nFlags, point);//把CTranDialog改成你的基类
  PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y));
  }

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  加入NCHITTEST消息函数

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

   UINT CClyzDlg::OnNcHitTest(CPoint point)
  {
  UINT nHitTest = CTranDialog::OnNcHitTest( point );//把CTranDialog改成你的基类
  return (nHitTest == HTCLIENT) ? HTCAPTION : nHitTest;
  }

  编译运行,没有出错就完成了,前后不到十行代码。

  我用基于对话框的应用程序,在vc6.0,winnt4.0下编译,运行良好。

来源:https://www.tulaoshi.com/n/20160219/1605884.html

延伸阅读
方法一 这种方法是在窗体的MouseDown、MouseUp和MouseMove等事件的处理过程中添加代码,实现在鼠标左键按下后移动时,改变窗体的Left和Top属性,实现移动无标题栏的窗体。 进入VB,把窗体Form1的BorderStyle属性设置为0-None(无标题栏),再窗体上添加一个ButtonCommand组件,用来关闭程序。代码如下: PrivateT...
扩展COleDropTarget类来支持任意窗口拖放 作者:沈阳市热电厂汽机分场 - 王加宝   本文详细论述了拖放的基本原理并提供一个支持窗口拖放的普遍类COleDropTargetEx,任何需要提供拖放的窗口包含此类后,将响应拖放消息函数加入,便可接收拖放。此类利用Windows消息来支持拖放,机制不同于COleDropTarget类与CView类那...
Win7命令提示窗口进行标题修改的方法   1.首先,在Win7电脑中打开命令提示符窗口,操作方法很简单,同时按下Win7电脑键盘上的win+R快捷键打开电脑的运行窗口,之后,输入cmd并单击回车,这样就可以打开Win7电脑的命令提示符窗口了。 2.在打开的命令提示符窗口中,输入命令代码title[String],注意,这里需要将String替换成自己想...
标签: 电脑入门
在word文档中设置文字的格式,有时候需要使用word内部提供的设置好的格式,就比如设置文字的不同级别的标题,就需要使用各种标题的样式! 一般情况下,要使用标题,在格式工具栏上面,有正文两个字的那个下拉列表框,里面就有标题的样式,但是,如下图一样。 一般只有三级的标题样式,标题 1、标题 2和标题 3,如果但是没有标题4、标题5、...
拖放(DragDrop)是Windows提供的一种快捷的操作方式。作为基于Windows的开发工具,Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了Delphi的强大功能和方便性。 Delphi提供的所有控件(Control,即能获得输入焦点的部件)都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我们先介绍控件的拖放支持...

经验教程

235

收藏

82
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部