VC 如何使鼠标悬停在按钮上时,按钮以高亮显示。代码不要用MFC,一定用SDK。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC 如何使鼠标悬停在按钮上时,按钮以高亮显示。代码不要用MFC,一定用SDK。相关的知识,希望对你有一定的参考价值。
关于按钮自绘的问题。
BOOL isPress = ctrl->itemState & ODS_SELECTED;
BOOL isPos = ctrl->itemState & ODS_HOTLIGHT;
这个ODS_HOTLIGHT和ODS_SELECTED好像不一样,无法用以下这种形式
if(isPress)
DrawIconEx(……)
,那么这个ODS_HOTLIGHT该如何用,或者有其他方式实现鼠标在按钮之上 ,按钮能高亮显示的方法吗 (SDK)?不要用MFC,一点看不懂。
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
参考技术B 在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中直接判断鼠标在按钮内就绘制按钮为高亮也可以本回答被提问者采纳
以上是关于VC 如何使鼠标悬停在按钮上时,按钮以高亮显示。代码不要用MFC,一定用SDK。的主要内容,如果未能解决你的问题,请参考以下文章
将鼠标悬停在图像上以显示按钮,并且在悬停在实际按钮上时不触发