你这个问题,我以前做过,有两种方案可以实现:
1、捕捉WM_MOUSEMOVE 消息,(首先获得窗口的位置),将鼠标当前与窗口位置的各边缘作比较,再进行处理即可。
2、使用ClipCursorRect()函数也可以,该函数可以将鼠标的移动范围限制在一个指定的区域中,至于具体参数,可以查阅MSDN
1、捕捉WM_MOUSEMOVE 消息,(首先获得窗口的位置),将鼠标当前与窗口位置的各边缘作比较,再进行处理即可。
2、使用ClipCursorRect()函数也可以,该函数可以将鼠标的移动范围限制在一个指定的区域中,至于具体参数,可以查阅MSDN
解决方案 »
- 服务删除后 不重启就无法再创建吗
- SDI上怎样使两个CDialogBar,一个占据整个左半边,一个占据右下部分,右上部门还是CView的?
- listctrl中添加按钮
- 随机产生的整数格式成字符型怎么不行???
- Unhandled Exception MFC42D.DLL (ACCESS VIOLATION) 怎么解决?
- 路过的人帮忙看一下程序错在哪里了好吗??~~
- 一个简单问题:在VB中 怎样调用带指针类型参数的接口。
- 急!!!修改注册表的小程序,请帮忙看看哪里出了错,应该怎么改
- 关于VC的菜鸟问题
- 请问谁用过Relation Rose?
- 创建CAnimateCtrl 对象时出错,求教!!
- 我怎么才能上网???
1、捕捉WM_MOUSEMOVE 消息,(首先获得窗口的位置),将鼠标当前与窗口位置的各边缘作比较,再进行处理即可。
2、使用ClipCursorRect()函数也可以,该函数可以将鼠标的移动范围限制在一个指定的区域中,至于具体参数,可以查阅MSDN
{
CDialog::OnShowWindow(bShow, nStatus);
if (bShow) { RECT rt; GetWindowRect(&rt); ClipCursor(&rt);//如要解除锁定,要在对框初始化时记下窗口范围,这个我已经实现,不过不是很简单的,呵呵.还可以按ctrl+alt+del解除锁定. }
// TODO: Add your message handler code here
}