你有没有发现在你取色的时候DreamWeaver编辑器的光标没了?所以方法是这样的
取当前程序主窗口大小和位置,用这个大小和位置创建一个无标题栏的窗口,你可以让这个新窗口不做任何显示相关的事情,这样它的显示就是你原来程序主窗口的显示,你也可以用BitBlt的办法(就是烦一点)。然后对你的新窗口设鼠标光标,当发生LButtonDown是,把你的新窗口关掉,就这么简单。
取当前程序主窗口大小和位置,用这个大小和位置创建一个无标题栏的窗口,你可以让这个新窗口不做任何显示相关的事情,这样它的显示就是你原来程序主窗口的显示,你也可以用BitBlt的办法(就是烦一点)。然后对你的新窗口设鼠标光标,当发生LButtonDown是,把你的新窗口关掉,就这么简单。
解决方案 »
- msvcp80.dll在winsxs下已经存在,为何仍然提示找不到。
- 如何把串口信号转换为USB信号?
- 错误说明(0x48234215)是什么意思?
- 如何将彩色位图转成单色位图并得到其像素信息?
- 用CSocket编写一个服务端的FTP程序,有一些疑问,请指教!
- VC6.0定时器::SetTimer后,在win7上运行中途停止?兼容性问题?
- 小弟初學,想請教socket的問題!
- 请问那位大侠能提供codejock的xtream toolkit xp 件及源代码下载
- Filter驱动中如何区分不同的硬件Device?
- listctrl 自绘重载了 drawitem后,导致 不能使用 为每一个列贴图。
- 我想裁减出一个很小的LINUX。 如何做?
- 送分:我需要能够访问清华BBS的代理服务器地址。
2:如果想任何时候都是你要求的那个光标(鼠标光标),则可以放置一个消息钩子,将OnSetCurSor过滤掉,而你程序启动是先改光标再说。
或者用开个循环来设置光标,而不管光标是否在你的窗体上。
if (m_bPick)
{
m_curNow = ::LoadCursor(NULL, IDC_CROSS);
m_curOld = SetCursor (m_curNow);
SetTimer (PICKTIME_ID, 50, NULL);
SetCapture ();
}
..
鼠标在那个程序的范围是显示十字光标的,出了窗口,就随其他应用程序了,该怎么样就怎么样了,真是无法无天阿!
也就是说,你必须确定鼠标在你的窗口里,才能调用SetCapture.你试试在点击取色功能的按钮时调用SetCapture,或重载WM_LBUTTONDOWN消息,在收到下一次点击时ReleaseCapture().同时取得点击处颜色。