窗体是一个属性页控件,将几个子窗体放在其中,但是在子窗体内调用ShowWindow(SW_HIDE)将其中的控件进行隐藏,当没有对BUTTON类控件进行操作时,可以正常进行显示与不显示的切换,但是当有点RADIO、CHECK、BUTTON时,会出现切换页面时ShowWindow(SW_HIDE)无效,控件依然在显示着?
期待高手帮忙

解决方案 »

  1.   

    在哪个窗体上操作?
    隐藏哪个窗体的控件?
    UpdateWindow(TRUE);试试呢
      

  2.   

    父类是一个CDIALOG继承过来的子类,做为子窗体置入一个属性页内,它本身也是由属性页来控制其他控件的显示和隐藏,设置隐藏的代码如下:
    (CButton *)GetDlgItem(控件ID)->ShowWindow(SW_HIDE);
    当在一个页面内鼠标操作一个单选框或者按一个按钮,再换到另一个页原本就应该能隐藏这个按钮,可以依然有显示。
      

  3.   

    会不会是按钮控件的ID有冲突
    试试给按钮控件添加控件变量
    用m_button1.ShowWindow(SW_HIDE);
      

  4.   

    删除clw再Rebuild
    再不行就单独弄个按钮事件把某个button1.ShowWindow(SW_HIDE)试试看是哪里的问题
    若再不行就贴代码
      

  5.   

    单独弄个按钮事件把某个button1.ShowWindow(SW_HIDE)试试看是哪里的问题
    这个可以,,,但是控件多啊,难道每个都这么搞一下?
      

  6.   

    知一而晓百,这些按钮都不能ShowWindow(SW_HIDE)的原因应该是类似的
    控件多的话应该把每个Page的控件都放在一个子Dlg中,切换页面就不用一个个都ShowWindow,只用隐藏子Dlg即可
      

  7.   

    你窗体多,可以定义窗体句柄,这样对窗体的控件也好控制,本来窗体就多,在不知道是父类,还是子类的,然后你就SW_HIDE或者SW_SHOW根本就不知道是那个窗体的控件,所以有的控件就没有实现隐藏。个人认为,不妨试试看!
      

  8.   

    不妨用GetDlgItem(控件ID)->ShowWindow(SW_HIDE);试试
      

  9.   

    (CButton *)GetDlgItem(控件ID)->ShowWindow(SW_HIDE);
    改为GetDlgItem(控件ID)->ShowWindow(SW_HIDE);
    实在不行就用我出的那个方法,或者每个窗体的句柄,然后再对里面的控件进行操作。
      

  10.   

    我也不太清楚,因为你提到的控件都是继承CButton类的,具体的ID定义我就不知道了,应该有重复的,一般大的项目里面,控件ID是一一对应的,没有重复的,资源文件里面得改。
      

  11.   

    这两天正好也遇到这么一问题,改为ModifyStyle(SW_VISIBLE, 0);就一切正常了。
      

  12.   

    ModifyStyle(SW_VISIBLE, 0);是在ONCREATE里面将窗体风格修改?
      

  13.   

    请问SW_VISIBLE是干什么用的啊
    请高手指教!
    我怎么不知道有这么个参数
    自己定义的么?
      

  14.   

    SW_VISIBLE  怎么不能识别???
    error C2065: 'SW_VISIBLE' : undeclared identifier
      

  15.   

    在控件显示和隐藏方面SW_VISIBLE参数起什么作用啊?
      

  16.   

    根本在控件显示和隐藏就没有SW_VISIBLE参数,除非他自己定义的!
      

  17.   

    UpdateWindow(FALSE);可以更新界面信息.隐藏后,调用这个,就可以了