永发信息网

VC 如何使鼠标悬停在按钮上时,按钮以高亮显示。代码不要用MFC,一定用SDK。

答案:2  悬赏:30  手机版
解决时间 2021-02-20 18:41
关于按钮自绘的问题。
BOOL isPress = ctrl->itemState & ODS_SELECTED;
BOOL isPos = ctrl->itemState & ODS_HOTLIGHT;
这个ODS_HOTLIGHT和ODS_SELECTED好像不一样,无法用以下这种形式
if(isPress)
DrawIconEx(……)
,那么这个ODS_HOTLIGHT该如何用,或者有其他方式实现鼠标在按钮之上 ,按钮能高亮显示的方法吗 (SDK)?不要用MFC,一点看不懂。
最佳答案
在WM_MOUSEMOVE消息响应中追踪WM_MOUSEHOVER与WM_MOUSELEAVE消息
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = hWnd;
tme.dwFlags = TME_LEAVE | TME_HOVER;
tme.dwHoverTime = 1;
TrackMouseEvent(&tme);

在WM_MOUSEHOVER消息相应中绘制按钮为高亮状态
在WM_MOUSELEAVE消息相应中绘制按钮为普通状态

当然,也可以不需要追踪WM_MOUSEHOVER消息,只需要在WM_MOUSEMOVE中直接判断鼠标在按钮内就绘制按钮为高亮也可以
全部回答
CButton::SetState void SetState( BOOL bHighlight ); ------------------------------------------- 建一个 按钮: CButton myButton; myButton.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), pParentWnd, 1); 按下去(凹陷,高亮度,用TRUE 或 非 0 值): myButton.SetState( TRUE ); 弹上来 (并取消了高亮度) myButton.SetState( 0 );
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鼎盟工业公司在什么地方啊,我要过去处理事情
vivoX3L手机怎么听歌都会发热,怎么解决?
找规律 6.25 2.5 1 () ()
优肯外教篮球(北师大朝阳附中分部)地址在什么
win7窗口上方的工具栏如何隐藏??
水电四局怎么样
低碳钢受拉破坏时将发生很大的塑性变形,其值
用十元钱可以买五张邮票要买十张同样价格的邮
小学生考试原来是一百分现在是六十分是怎么算
看涨期权是什么
安徽金岩高岭土公司在哪里啊,我有事要去这个
1、《バカな妹を利口にするのは俺の××だけ
设函数f(x)=x^2-1,对任意x∈[2/3,+∞),f(x/m)
泸州高中恒温游泳馆地址在哪,我要去那里办事
我的世界联机有个朋友他能把凋零变成小白头,
推荐资讯
台式电脑战侠400显卡在哪个位置
侵占罪民事诉讼标准
有人可待,有日可期 什么意思?
香辣金钍菇如何做
江西泰豪动漫职业学院-第一学生食堂我想知道
永动机为什么不可能实现,它违背了那些物理定
北京中医药大学远程教育作业没写错过了提交日
不知道薇诺娜会不会对皮肤产生副作用?
EMS从济南到云南的一个县要几天
右图反映了列强侵华的史实。圆明园曾是座优美
朋友们 我养了三只乌龟 一只鳄鱼龟两只巴西龟
薛之谦高磊鑫是什么时候离婚的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?