关于WM_COPYDATA的问题
做了一个DLL鼠标的钩子,当WM_MOUSEMOVE的时候,取得当前鼠标的位置(没有用到共享存储区,用的是
SendMessage(hOutputWnd,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cds)
),但是当在BCB中引用DLL的时候,在Form中这样声明
class TForm1 : public TForm
{
...........
public: // User declarations
void __fastcall COPYDATA(TMessage & msg);
protected:
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_COPYDATA, TMessage, COPYDATA)
END_MESSAGE_MAP(TForm)
};
现在问题是,只有我的鼠标在FORM上移动的时候,才会显示鼠标的位置,当鼠标移出FORM时,窗口中就不会取得鼠标的位置了.(不用共享存储区)怎样处理才能做到当鼠标移出FORM时也能在from中取得数据
问题点数:20、回复次数:3Top
1 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-31 10:10:26 得分 20
SetCapture
http://www.mvps.org/user32/setcapture.htmlTop
2 楼LVOLCANO(风起)回复于 2006-03-31 10:27:45 得分 0
一定要SetTimer来控制吗?Top
3 楼LVOLCANO(风起)回复于 2006-03-31 10:53:12 得分 0
faint,SetCapture is too high-handed,Cusor can do nothing!Top




