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

关于按钮自绘的问题。BOOLisPress=ctrl->itemState&ODS_SELECTED;BOOLisPos=ctrl->itemState&ODS_HOTL... 关于按钮自绘的问题。
BOOL isPress = ctrl->itemState & ODS_SELECTED;
BOOL isPos = ctrl->itemState & ODS_HOTLIGHT;
这个ODS_HOTLIGHT和ODS_SELECTED好像不一样,无法用以下这种形式
if(isPress)
DrawIconEx(……)
,那么这个ODS_HOTLIGHT该如何用,或者有其他方式实现鼠标在按钮之上 ,按钮能高亮显示的方法吗 (SDK)?不要用MFC,一点看不懂。
展开
 我来答
daiyuegao
2013-06-19 · 超过13用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:41.5万
展开全部
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 );
追问
你应该仔细的看标题 ,不要MFC 只要SDK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花花浪客
2013-08-08 · TA获得超过2069个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:711万
展开全部
在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中直接判断鼠标在按钮内就绘制按钮为高亮也可以
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式