如题,这个问题忙了一个下午都没有解决

解决方案 »

  1.   

    这个风格好象是不能在运行时修改的. 如果一定要这样做的话,只能将原位置的COMBOBOX删除,然后再按新的风格创建一个. 注意把里面的内容也搬过来.这个就象EDIT的单行/多行一样不能改的
      

  2.   

    可能你白忙活了,:-)
    CComboBox不支持在创建对象之后修改styles,可以重新创建一个CComboxBox来改变效果,重新创建的CComboxBox能够保存原控件的数据和状态。
    参考http://www.codeproject.com/combobox/RecreateComboBox.asp
     
      

  3.   

    的确是不能改的,我提供一段用几个RadioButton来实现这种效果的方法(三种不同风格进行切换)要三个CComboBox控件,并且叠放在一起
    void CDLGDlg::OnBnClickedRadio4()
    {
    CComboBox * pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    pBo->ShowWindow(SW_SHOW);
    pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO2);
    pBo->ShowWindow(SW_HIDE);
    pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO3);
    pBo->ShowWindow(SW_HIDE);}void CDLGDlg::OnBnClickedRadio2()
    {
    CComboBox * pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO2);
    pBo->ShowWindow(SW_SHOW);
    pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    pBo->ShowWindow(SW_HIDE);
    pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO3);
    pBo->ShowWindow(SW_HIDE);}void CDLGDlg::OnBnClickedRadio3()
    {
    CComboBox * pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO3);
    pBo->ShowWindow(SW_SHOW);
    pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    pBo->ShowWindow(SW_HIDE);
    pBo=(CComboBox*)this->GetDlgItem(IDC_COMBO2);
    pBo->ShowWindow(SW_HIDE);
    }