读书人

怎么在BCB界面上不同控件上加载不同的

发布时间: 2013-07-04 11:45:44 作者: rapoo

如何在BCB界面上不同控件上加载不同的自定义鼠标样式?
VC中有OnSetCursor的消息响应,里面可以设置不同的控件ID的鼠标样式。

BCB中我也设置了消息响应,但不知道消息中如何区分不同控件句柄,有人做过类似的功能吗?
VCL_MESSAGE_HANDLER(WM_SETCURSOR,TMessage,SetCursorResponse);

下面这两句,也是可以设置,不过似乎设置成了窗体全局的,不是控件局部的
HCURSOR cursor = LoadCursor(HInstance,"Cursor_1");
::SetCursor(cursor);

我也想过替换BCB自带的鼠标样式,似乎没有效果。

是不是只能用控件的Cursor赋值的属性,能否用API来完成啊?

鼠标 Cursor
[解决办法]
截获WM_SETCURSOR消息,判断鼠标当前的位置下的控件,装载不同的光标。

void __fastcall TForm1::WndProc(TMessage &Msg)
{
if (Msg.Msg == WM_SETCURSOR)
{
POINT pt;
::GetCursorPos(&pt);
HWND h = WindowFromPoint(pt);
if (h == Button2->Handle)
{
HCURSOR hCursor = LoadCursorFromFile("D:\\ccrun\\123.cur");
::SetCursor(hCursor);
Msg.Result = true;

return;
}
}

TForm::WndProc(Msg);
}



[解决办法]
建议你看看这个 http://bbs.csdn.net/topics/40229622

读书人网 >C++ Builder

热点推荐