如何限制窗口只在桌面工作区(不包括任务栏)活动?
来源:互联网 发布:三福百货 java开发 编辑:程序博客网 时间:2024/06/17 03:46
类似的效果有:360的悬浮窗,移动到屏幕边界,再怎么移动都无法移出屏幕。
首先,需要关联的消息类型:WM_WINDOWPOSCHANGING。例如:在MFC里面,直接在类的属性中添加对应的消息响应函数即可。
示例代码如下:
//void CFloatingDlg::OnWindowPosChanging(LPWINDOWPOS lpWndPos){CRect rect;//桌面工作区大小(不包括任务栏)::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);bool bNeedReset = false;if (lpWndPos->x < 0){lpWndPos->x = 0;bNeedReset = true;}if (lpWndPos->y < 0){lpWndPos->y = 0;bNeedReset = true;}if ((lpWndPos->x + lpWndPos->cx) > rect.right){lpWndPos->x = rect.right-lpWndPos->cx;bNeedReset = true;}if (lpWndPos->y + lpWndPos->cy > rect.bottom){lpWndPos->y = rect.bottom-lpWndPos->cy;bNeedReset = true;}if (bNeedReset){::SetWindowPos(m_hWnd, HWND_TOPMOST, lpWndPos->x, lpWndPos->y, lpWndPos->cx, lpWndPos->cy, SWP_SHOWWINDOW);}}
阅读全文
0 0
- 如何限制窗口只在桌面工作区(不包括任务栏)活动?
- 获取桌面的大小(不包括任务栏)
- 将程序窗口显示在桌面工作区的右下角
- MFC限制子窗口只在父窗口内移动
- VC中获取桌面工作区与任务栏大小
- 在任务栏隐藏窗口
- 如何隐藏QT窗口在任务栏(taskbar)的任务图标
- MFC中如何让弹出窗口在任务栏显示图标?
- 如何隐藏QT窗口在任务栏(taskbar)的任务图标
- graphedit无法启动, 运行后只出现在任务栏,没有主窗口
- 窗口在任务栏不显示。
- Delphi编写系统服务四:如何限制系统服务和桌面程序只运行一个
- Delphi编写系统服务四:如何限制系统服务和桌面程序只运行一个
- 如何找回任务栏快速显示桌面按钮
- xp系统 任务栏 “搜索桌面” 如何去掉
- MFC 如何在自己的程序中获取Windows桌面底部任务栏 自动隐藏任务栏\取消自动隐藏任务栏 的消息
- 在任务栏显示“显示桌面”图标
- 如何在工作线程中创建窗口?
- 欢迎使用CSDN-markdown编辑器
- Python中map,filter和apply函数
- 小 Y 的问题
- hdu 6130 Kolakoski
- 王学岗ToolBar,DrawLayout+Navigation的使用(四)——InputTextLayout
- 如何限制窗口只在桌面工作区(不包括任务栏)活动?
- unity播放开始动画
- 素数打表
- PHP基础教程-22 课后作业05
- 存储过程的例子(二)
- Java 异常应用 异常代码快的封装
- HDU-2017 多校训练赛7-1010-Just do it
- 堆的基本操作
- 音频AAC编码 fmepg3.3.0