(MFC)在任意位置拖动窗口或弹出窗口菜单
来源:互联网 发布:php 获取请求url 编辑:程序博客网 时间:2024/05/16 01:53
在对话框任意位置拖动窗口
点击对话框=点击标题。
void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point){ SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0); // 也可以这样实现: PostMessage(WM_SYSCOMMAND, 0x0f012, 0); // CDialog::OnLButtonDown(nFlags, point);}
在对话框任意位置弹出系统菜单
HMENU GetSystemMenu(HWND hWnd,BOOL bRevert);
此函数允许应用程序访问窗口菜单,如果bRevert为FALSE,返回值是当前窗口菜单的可修改的拷贝的句柄。如果此参数为TRUE,返回值是NULL,函数重置窗口菜单到缺省状态。
void CAlphaDialogDlg::OnRButtonDown(UINT nFlags, CPoint point){ CPoint pt; GetCursorPos(&pt); HMENU m = ::GetSystemMenu(GetSafeHwnd(), FALSE); ::TrackPopupMenu(m, TPM_RIGHTBUTTON, pt.x, pt.y, 0, GetSafeHwnd(), NULL); CDialog::OnRButtonDown(nFlags, point);}
对于标题栏的系统菜单,选择菜单项后,发送的是WM_SYSCOMMAND消息。但是自己取得系统菜单的句柄,并且用TrackPopupMenu弹出菜单,这时选择菜单后系统发出的是另外一个消息WM_COMMAND。所以程序不会自动响应,需要自己写代码来响应。
MFC项目的WM_COMMAND消息响应在OnCommand虚函数中添加。
BOOL CXXXDlg::OnCommand(WPARAM wParam, LPARAM lParam){ switch (wParam) { case SC_ZOOM: case SC_ICON: case SC_MOVE: case SC_SIZE: case SC_CLOSE: case SC_RESTORE: SendMessage(WM_SYSCOMMAND, wParam, 0L); default: break; } return CDialog::OnCommand(wParam, lParam);}
引用:CSDN:用API实现弹出 标题栏的系统菜单 ,但点击其具体的菜单项,程序却没响应!
1 0
- (MFC)在任意位置拖动窗口或弹出窗口菜单
- mfc任意位置实现窗口拖动
- MFC任意位置实现窗口拖动
- 任意位置拖动窗口
- VC/MFC拖动窗口任意位置移动窗口
- C#窗口任意位置拖动
- VC单击窗口任意位置都可拖动窗口
- 在光标位置弹出窗口
- activity实现弹出滑动窗口或菜单
- MFC: 右键弹出菜单-->选取菜单弹出窗口
- Android如何在任意界面弹出窗口
- MFC - 点击拖动窗口
- MFC 无标题窗口拖动
- mfc任意分割窗口
- 在QWidget 窗口上弹出右键菜单
- 拖动窗口任意位置移动窗口(网上找的没有整理)
- 从底部弹出或滑出选择菜单或窗口
- 窗口弹出中间位置
- unix文件和i/o流
- vxlan-SDK-nsx_integration-vxlan_xorp
- Block究竟在哪
- vxlan概述
- AspectJ切入点语法详解
- (MFC)在任意位置拖动窗口或弹出窗口菜单
- Java 多线程之基础
- 回文--nkoj3681
- Xcode常用快捷键总结
- Substring with Concatenation of All Words
- Linx常用的命令
- 第九周上机实践项目2:我的数组类
- 一个极为优雅的椭圆命题(已更新)
- java常用类