MFC做的ComboBox控件,在VB中使用,需要在设计阶段固定控件外面的虚框高度,比交小的一个数值,重载OnSetExtent即可。但是在设计时在改变OnSetExtent函数就不好使了,于是我用SetWindowPos改变下拉框的高度,但是不准确,比较粗糙,请问我如何在控件运行阶段,改变在设计阶段设定的下拉框高度,比如设计阶段高度固定为500,在运行时需要改为2000,如何做呢我是用MFC作的控件,不是ATL哦,呵呵,谢谢大家

解决方案 »

  1.   

    你可以自己重载CComboBox类,自己加个CListBox上去,覆盖在原来的那个上面,想怎么控制都可以的
      

  2.   

    由于本人技术有限,对{1楼 :兔子党组织部长}说的办法我实现起来比较费劲,我对ListBox控件的构成几乎是不了解的,呵呵
      

  3.   

    如果你是在不想重载该CComboBox类的话,可以这样做,那就这样试试,不过这样改的话ListBox好像有个最大高度的限制,不过没有试过。m_combo.ModifyStyle(0, CBS_NOINTEGRALHEIGHT); // 或者手动勾上No intergral height CRect rect;
    m_combo.GetWindowRect(rect); rect.bottom = rect.bottom + 100; ScreenToClient(&rect); m_combo.MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());