同上

解决方案 »

  1.   

    怎么做。我查网上有人说Create时的rect就是下拉列表框可视高度了,不知道是不是,现在我没法验证。我一直以为那个是编辑框/静态框rect
      

  2.   

    rect
    Points to the position and size of the combo box. Can be a RECT structure or a CRect object.
    //是总的尺寸,包括下拉列表和编辑框的高度。编辑框的高度是由风格和字体大小决定的。
      

  3.   

    谢谢。rect的问题知道了。字体和大小问题。说明下,这个combobox是自绘的,在DrawItemText下面有pDC->SelectObject(&m_gFont),m_gFont初始9号,宋体。如果不是Create这个combobox的话,完全正常的,CMyComboBox::SetFont(int , LPCTSTR)也可以动态设置,但是用Create后,再调用CMyComboBox::SetFont后,在编辑框看到的字体也是大的,但在下拉列表框看到的是正确的
    直到combobox失去Focus,编辑框里的字才变回9号宋体
      

  4.   

    combobox是包含了一个EDIT控件的,设置字体的时候需要找到该EDIT控件,也设置一下。
      

  5.   

    谢谢,这我怎么才取得到Combobox下这个edit或是/static的hwnd或是cwnd呢
      

  6.   

    rect包含编辑框和下拉列表的高度
      

  7.   

    谢谢,rect这个问题解决了。现在是编辑框字体的问题.还有我发现我的COMBOBOX有50行,而我Create时的rect(下拉列表框)并不能显示完这么多,这个时候滚动条不见了,已经设置当不狗显示时自己滚动条的样式了
      

  8.   

    create时候的样式不对,要允许滚动条的
      

  9.   

    // TODO: Add extra initialization here
    RECT commr, wr, cr; m_commport.GetWindowRect( &commr );
    this->GetWindowRect( &wr );
    this->GetClientRect( &cr );
    int w, h;
    w = wr.right - cr.right;
    h = wr.bottom - cr.bottom; m_commport.SetWindowPos( 0, commr.left - w, commr.top - h, commr.right - w, commr.bottom + 200 - h, 0 );
      

  10.   

    谢谢,已经解决了,加上滚动条样式。现在唯一的缺点就是Create出来的组合框,当是DOWN样式,而不是DOWNLIST的时候,下拉列表框是已经正确重绘了的,但编辑框里没重绘,所以里面的文本是10号字,加粗,请问现在应该怎么处理.