MFC Combo-Box 控件下拉框问题

初写程序时,通过addstring()函数,在combox里面添加数据,可运行时,并不显示这些数据。。。。。
如何解决这个问题呢??一般通过以下方法就能解决
改变ComboBox下拉框的大小
   看上去combox的大小似乎只能在长度方向改变,高度方向拉不动。。。。
   事实上,高度方向也是可以改变的哈,试试以下方法:
   点Combox的上面的那个三角形,点一下以后有个虚框,然后往下拉,之后就可以完整显示combox里面的内容了!!
但是如果你做的控件自适应了的话,也就是最大化窗口的子控件能够增大,这样通过以上设置是无效的。
   具体的方法直接上代码
void CDemoDlg::ReSize(void)
{
    float fsp[2];
    POINT Newp; //获取现在对话框的大小;
    CRect recta;    
    GetClientRect(&recta);     //取客户区大小;  
    Newp.x=recta.right-recta.left;
    Newp.y=recta.bottom-recta.top;
    fsp[0]=(float)Newp.x/old.x;
    fsp[1]=(float)Newp.y/old.y;
    CRect Rect;
    int woc;
    CPoint OldTLPoint,TLPoint; //左上角;
    CPoint OldBRPoint,BRPoint; //右下角;
    HWND  hwndChild=::GetWindow(m_hWnd,GW_CHILD);  //列出所有控件;  
    while(hwndChild)    
    {    
        woc=::GetDlgCtrlID(hwndChild);//取得ID;
        GetDlgItem(woc)->GetWindowRect(Rect);  
        ScreenToClient(Rect);  
        OldTLPoint = Rect.TopLeft();  
        TLPoint.x = long(OldTLPoint.x*fsp[0]);  
        TLPoint.y = long(OldTLPoint.y*fsp[1]);  
        OldBRPoint = Rect.BottomRight();  
        BRPoint.x = long(OldBRPoint.x *fsp[0]);
		if (woc == 1022 || woc == 1021 || woc == 1018)
		{
			BRPoint.y = long((OldBRPoint.y+30) *fsp[1]);
		}else
		{
			 BRPoint.y = long(OldBRPoint.y *fsp[1]); 
		}
        
        Rect.SetRect(TLPoint,BRPoint);  
        GetDlgItem(woc)->MoveWindow(Rect,TRUE);
        hwndChild=::GetWindow(hwndChild, GW_HWNDNEXT);    
    }
    old=Newp;
}

判断如果是下拉框的话,就把 Bottom的Y坐标调大一点,问题就解决了。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值