点击客户区移动窗口 .

添加鼠标左键按下响应函数:

1、 声明

afx_msg void OnLButtonDown(UINT nFlags, CPoint point);

2、 消息映射

BEGIN_MESSAGE_MAP(CDddDlg, CDialog)

     //{{AFX_MSG_MAP(CDddDlg)

     ON_WM_LBUTTONDOWN()

     //}}AFX_MSG_MAP

END_MESSAGE_MAP()

3、 实现函数

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

{

// TODO: Add your message handler code here and/or call default

PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));

CDialog::OnLButtonDown(nFlags, point);

}

4、 扩展

编写你需要响应的函数并在实现函数中加入

PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));

即可。

时间: 2024-07-30 19:54:14

点击客户区移动窗口 .的相关文章

编程-想在窗口客户区上画很多条直线,该怎么做?

问题描述 想在窗口客户区上画很多条直线,该怎么做? 当我画完一条线后准备要画下一条线时,这条线消失了,有没有什么办法把刚画完的直线留下来,我想在这窗口上画很多条直线,如何修改代码才能实现? 解决方案 那个InvalidateRect()函数,最后一个参数写NULL就好了. 解决方案二: 弄一个数据结构,譬如数组,把每次画线的坐标存储起来,然后在PAINT中需要绘画的是每根直线

老话题:自己编写只截窗口客户区的截屏软件(VB2010)

现在能实现截屏的软件很多,就不一一列举了,连WIN7都自带截屏软件,甚至OFFICE2010开始都有截屏的功能.   截屏软件虽多,无外乎三种截屏方式:全屏截图.窗口截图.自定义矩形截图.   其中,窗口截图用的比较多,下面就是一个窗口截图的示例:   但有时我们仅仅希望截取窗口的客户区,如下图所示:   这样的软件并不多,折中的办法是用自定义矩形截图,但是要调整矩形并不是一件很容易的事.   于是,基于码农的精神,自给自足. 于是上网搜了搜解决方案.有两个 1.基于Win API函数的Prin

再谈客户区对话框拖动操作

<无标题对话框的拖动>,示范了如何用鼠标点击窗口或对话框背景(即客户区)进行拖动操作,文章中提供的解决方法在没有上下文菜单的情况下运行很正常,一旦有上下文菜单时,文中所提供的方法便显现出了缺陷--上下文菜单无法显示出来.本文将针对这个问题对前一篇提出的方法进行改进. 当初实现拖动的基本思路是改写 OnNcHitTest 例程,让鼠标在客户区中的点击始终返回 HTCAPTION 而不是 HTCLIENT,从而诱使 Windows 实现拖动操作.没想到这样做使上下文菜单的操作出现了混乱,原因是如果

mfc-MFC怎么将客户区变成非客户区

问题描述 MFC怎么将客户区变成非客户区 我用BCG库的停靠窗口在顶部创建了一个窗口,然后隐藏了原来的标题栏,菜单和工具栏,然后我想让在顶部的那个停靠窗口成为新的标题栏形势的非客户区,请问该怎么做,OnNCHitTest改写没用 解决方案 请详细描述你的问题呢.... 解决方案二: 你创建的是什么窗口?CDockablePane?

用C#实现在客户区拖动窗体

当你设计一个应用程序时,或许你希望用户能够通过客户区来拖动窗体,比如:当窗体没有标题栏或创建的是不规则的窗体时,就只有通过客户区来拖动窗体了. 一个发生在我们身边很好的例子就是Microsoft Windows Media Player.Media Player有项功能是根据用户的爱好可以随意换掉外观(换肤),这个时候标题栏就隐藏了,但是你能够通过客户区来拖动窗体. 好了,言归正传,开始我们的旅程吧 首先必须了解Windows的消息传递机制,当有鼠标活动消息时,系统发送WM_NCHITTEST

界面-求助:mfc非客户区自绘请求高手指点,不知道该怎么做

问题描述 求助:mfc非客户区自绘请求高手指点,不知道该怎么做 50C 想美化一下界面,查资料说要重绘非客户区,看的晕头转向,麻烦高手给指点一下思路,最好有代码可以参考一下 解决方案 WM_NCPAINT这个就是重绘飞客户区的消息,响应在这个消息在里面绘图就好了. 解决方案二: http://blog.csdn.net/faihtua/article/details/8082264 解决方案三: 参考:VC 轻松实现非客户区按钮http://blog.csdn.net/testcs_dn/art

求教,如果在winform的客户区中要显示多个不同的界面,一般用不同panel切换,还是多个winform切换展示?

问题描述 初学者求教,如果在winform的客户区中要显示多个不同的界面,一般用不同panel切换,还是多个winform切换展示?我现在要写一个简单winform,要求当点击菜单栏不同的项目时,下面要展示不同的控件集合或界面,不知道在这种情况下一般用panel切换还是添加多个winform?谢谢大家! 解决方案 解决方案二:不能用tabControl吗?解决方案三:多界面的代码量小,易懂,好控制单界面代码超多,乱,但界面操作的易用性好解决方案四:如果业务逻辑不同,最好用多个窗体实现,这样程序的

javascript判断触发事件event的光标坐标,相对于客户区和屏幕

相对于客户区的坐标的使用:   <html><head><script type="text/javascript">function show_coords(event){x=event.clientXy=event.clientYalert("X 坐标: " + x + ", Y 坐标: " + y)}</script></head> <body onmousedown=&qu

修改窗体非客户区大小更改窗体标题栏高度

想修改窗体的非客户区,首先就得明白为什么要修改非客户区,什么是非客户区 从窗体或控件来看,非客户区就是无法放置控件的区域,比如窗体的标题栏,和边框,菜单栏也是非客户区,菜单栏不是控件是画上去的 文本框的边框,滚动条区域都是非客户区 为什么要修改非客户区呢?? 原因是为了自绘,让边框好看一些,比如要加高窗体标题栏,就需要改非客户区,自绘非客户区会响应 WM_NCPAINT消息 在这个消息里,你可以进行窗体,控件,非客户区的自绘 好啦,现在转入正题,要修改非客户大小,必须处理 WM_NCCALCSI