在一个对话框中,使用了很多静态控件用于显示统计的数据。用一个列表框控件显示相关的选择条件,选择方式为多选。一开始时列表框不显示,当单击一相关的静态控件时列表框显示,供统计选择用。
    问题是列表框显示时与对话框上的其它静态控件相交,并且被相交的静态控件挡住,使用很不方便。
    本人将列表控设置为Tab顺序最前端或最后端均不能让列表控件显示在最上面,因此向各位请教:有什么方法能够使原先隐藏的控件在显示时始终在其它控件的最上面。
                         在下先谢了!!

解决方案 »

  1.   

    Rigel兄弟晚上好啊。
    既然列表框出现了,那么与它相交的控件这时是不该被显示的,你可以把他们先隐藏起来,待需要是再恢复显示
      

  2.   

    ShowWindow()
    或者setWindowPos()
      

  3.   

    我用mystaticctrl.EnableWindow(false)只能使控件失去输入,控件仅变灰而以,但仍然盖在我的listbox控件上。
    昨天我用了SetWindowPos()试了一下,没有成功,因为是第一次用,不知用对没有,如下:
    mylistbox.SetWindowPos(this,x,y,cx,cy,SWP_SHOWWINDOW);
    mylistbox.SetWindowPos(& this->wndTop,x,y,cx,cy,SWP_SHOWWINDOW);
    mylistbox.SetWindowPos(& wndTop,x,y,cx,cy,SWP_SHOWWINDOW);
    以上三种方式均不能实现我的目的,情况仍然依旧,即使将wndTot改为wndTopMost情况仍然一样。
      

  4.   

    I think the evil is a mass of controls's arrangement, you should arrange their position in any case. If the static control is covered by listbox when listbox occurs, the static control shouldn't be there. Understand?
      

  5.   

    mylistbox.ShowWindow(SW_SHOW);
    mylistbox.BringWindowToTop();
      

  6.   

    GetWindowRect(&rc);//获取控件的Rect
    SetWindowPos(&wndTopMost,rc.left,rc.top,rc.Width(),rc.Height(),SWP_SHOWWINDOW)//显示控件并将其提前
      

  7.   

    各位朋友,SetForegroundWindow()、BringWindowToTop()、movewindow()、SetWindowPos()我都试了,就是不行呀,我已经头都大了,而且今天已经很急了,请各位朋友多多帮忙呀!
      

  8.   

    SetWindowPos(&wndTop, left, top, width, height, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW)
      

  9.   

    调试SetWindowPos(&wndTop, left, top, width, height, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW),还是不行