如何按非客户区移动窗体

婆罗菩提树

婆罗菩提树

2016-01-29 11:52

如何按非客户区移动窗体,如何按非客户区移动窗体

如何按非客户区移动窗体


作者 浙江大学 王向伟

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


下载源代码

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/cyuyanjiaocheng/)
我曾在VCKBSAE上看到一介绍如何按非客户区移动窗体,既重载WM_NCHITTEST,返回HTCAPTION。但我认为有一点不妥就是没有了鼠标右键功能。这里我介绍一种方法,即可已在客户区移动窗体又可以实现鼠标右键功能。
1、新建一工程DLG。采用默认设置。
2、添加消息处理函数:
void CDlgDlg::OnLButtonDown(UINT nFlags, CPoint point) {    PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,pointy));    CDialog::OnLButtonDown(nFlags, point);}      
3、添加右键功能。已实现鼠标右键功能
void CDlgDlg::OnRButtonDown(UINT nFlags, CPoint point) {   CMenu menu,*sub;   menu.LoadMenu(IDR_MENU1);   sub=menu.GetSubMenu(0);   ClientToScreen(&point);   sub-TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);   CDialog::OnRButtonDown(nFlags, point);}      
其它实现细节请参见源代码。
展开更多 50%)
分享

猜你喜欢

如何按非客户区移动窗体

C语言教程 C语言函数
如何按非客户区移动窗体

移动窗体

电脑网络
移动窗体

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用C#实现在客户区拖动窗体(转自MSDN)

电脑网络
用C#实现在客户区拖动窗体(转自MSDN)

全部窗体可使用鼠标中移动

编程语言 网络编程
全部窗体可使用鼠标中移动

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

按摩手法 长寿多按4区

按摩手法 老年人
按摩手法 长寿多按4区

实现窗体内部的左右移动

编程语言 网络编程
实现窗体内部的左右移动

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Pro/E如何做两条c2(曲率相连)的曲线

Pro/E如何做两条c2(曲率相连)的曲线

解析HTML的增强标记

解析HTML的增强标记
下拉加载更多内容 ↓