打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC 无标题栏窗体移动

VC++无标题栏窗体移动  

2007-01-29 02:03:16|  分类: vc++ - 代码成就 |字号 订阅

WM_LButtonDown 消息响应处理 // 鼠标左键

void CDlgDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
 CDialog::OnLButtonDown(nFlags, point);
}

按窗体任何位置都可移动窗体!-------------------------------------------

-----在无标题栏的窗体上右键功能实现:↓↓

WM_RButtonDown 消息响应处理 // 鼠标右键

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

-----------------------------------------------------------------------------------------------------------------

对于无标题栏的对话框,用鼠标移动它的简单方法为:对消息WM_NCHITTEST进行处理,然后做鼠标位置的判断,如果鼠标位置在要移动窗口的客户区,则返回为鼠标在标题栏的信号,也就是欺骗windows,让它误认为你在点击标题栏,于是,你就可以正常拖动窗口了。

WM_NCHITTEST  消息响应处理

让窗口部分区域起移动功能的作用!

函数GetWindowPlacement得到当前窗口在屏幕上的位置.

这个函数的参数类型为WINDOWPLACEMENT结构。原型为
typedef struct tagWINDOWPLACEMENT {     /* wndpl */
   UINT  length;
   UINT  flags;
   UINT  showCmd;
   POINT ptMinPosition;
   POINT ptMaxPosition;
   RECT  rcNormalPosition;
} WINDOWPLACEMENT;
其中,第六个变量rcNormalPosition为窗口正常显示时的位置

UINT CTimeWakeDlg::OnNcHitTest(CPoint point)
{
       UINT hit=CDialog::OnNcHitTest(point);
       if(hit==HTCLIENT)
       {
              WINDOWPLACEMENT winplace;
              GetWindowPlacement(&winplace);
              int xp=winplace.rcNormalPosition.left;
              int yp=winplace.rcNormalPosition.top;
 
              if((point.x>xp)&&(point.x<xp+50)&&(point.y>yp)&&(point.y<yp+30))
                     return HTCAPTION;
              else 
                     return hit;
       }
       else
              return hit;
}       

好了,再在左上角画个图之类的,就更明显漂亮喽

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
CSplitterWnd技巧
《基于MFC的OpenGL编程》Part 6 Keyboard and Mouse Control
vc中使用SendMessage正确发送自定义消息的方法
VC6模仿SPY++拖动CUR(二)
VC橡皮筋绘图技术的实现
vc中如何响应键盘和鼠标事件(2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服