当我鼠标移动到指定区域CRect内,这个Combo Box控件就浮现,否则就消失.
我可以把代码发给你,帮我改一改

解决方案 »

  1.   

    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);
    }
      

  2.   

    你这里有个问题,OnMouseMove会产生很多次,if也会进入很多次,每次都创建的话,岂不完蛋了?可以先创建好,if这里只是显示/隐藏一下,然后别忘了CBox.SetFocus设置一下焦点。
      

  3.   

    在对话框初始化的时候创建Create,但不显示。自己从CComboBox派生一个类,子类化控件。
    在CComboBox初始化的时候调用TrackMouseEvent函数,然后响应WM_MOUSEHOVER消息显示控件,响应WM_MOUSELEAVE消息隐藏控件。