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,一点看不懂。 展开
BOOL isPress = ctrl->itemState & ODS_SELECTED;
BOOL isPos = ctrl->itemState & ODS_HOTLIGHT;
这个ODS_HOTLIGHT和ODS_SELECTED好像不一样,无法用以下这种形式
if(isPress)
DrawIconEx(……)
,那么这个ODS_HOTLIGHT该如何用,或者有其他方式实现鼠标在按钮之上 ,按钮能高亮显示的方法吗 (SDK)?不要用MFC,一点看不懂。 展开
展开全部
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 );
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在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中直接判断鼠标在按钮内就绘制按钮为高亮也可以
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中直接判断鼠标在按钮内就绘制按钮为高亮也可以
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询