打开个BMP放在客户区,现在我想让一个Combo Box悬浮在BMP上面

果菲 2008-09-25 08:18:01
当我鼠标移动到指定区域CRect内,这个Combo Box控件就浮现,否则就消失.
我可以把代码发给你,帮我改一改
...全文
53 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2008-09-25
  • 打赏
  • 举报
回复
在对话框初始化的时候创建Create,但不显示。自己从CComboBox派生一个类,子类化控件。
在CComboBox初始化的时候调用TrackMouseEvent函数,然后响应WM_MOUSEHOVER消息显示控件,响应WM_MOUSELEAVE消息隐藏控件。
菜牛 2008-09-25
  • 打赏
  • 举报
回复
你这里有个问题,OnMouseMove会产生很多次,if也会进入很多次,每次都创建的话,岂不完蛋了?

可以先创建好,if这里只是显示/隐藏一下,然后别忘了CBox.SetFocus设置一下焦点。
果菲 2008-09-25
  • 打赏
  • 举报
回复
void CSDK2500Dlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rt(0, 460, 100, 480);
if (PtInRect(&rt, point))
{
CBox.Create(WS_VISIBLE|WS_CHILD|WS_CLIPCHILDREN, CRect(0, 460, 100, 480), this, 123);
CBox.AddString("123");
CBox.AddString("126");
CBox.AddString("80");
CBox.AddString("90");
}
else
CBox.DestroyWindow();
CDialog::OnMouseMove(nFlags, point);
}

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧