首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么在BCB界面上不同控件上加载不同的自定义鼠标样式

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

如何在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

热点排行