MFC Combo-Box 控件下拉框问题
2016-06-18 22:18
218 查看
初写程序时,通过addstring()函数,在combox里面添加数据,可运行时,并不显示这些数据。。。。。
如何解决这个问题呢??一般通过以下方法就能解决
改变ComboBox下拉框的大小
看上去combox的大小似乎只能在长度方向改变,高度方向拉不动。。。。
事实上,高度方向也是可以改变的哈,试试以下方法:
点Combox的上面的那个三角形,点一下以后有个虚框,然后往下拉,之后就可以完整显示combox里面的内容了!!
但是如果你做的控件自适应了的话,也就是最大化窗口的子控件能够增大,这样通过以上设置是无效的。
具体的方法直接上代码
判断如果是下拉框的话,就把Bottom的Y坐标调大一点,问题就解决了。
如何解决这个问题呢??一般通过以下方法就能解决
改变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坐标调大一点,问题就解决了。
相关文章推荐
- Visual C++中MFC消息的分类
- MFC中Radio Button的用法详解
- MFC对话框中添加状态栏的方法
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法
- MFC实现在文件尾追加数据的方法
- MFC之ComboBox控件用法实例教程
- MFC绘制不规则窗体的方法
- IE8引发 VS2005/2008 MFC向导出错的解决方案
- MFC实现全屏功能代码实例
- 使用VS2010创建MFC ActiveX工程项目
- C++中MFC Tab Control控件的使用详解
- MFC程序设计常用技巧汇总
- MFC扩展DLL中导出类和对话框的实现方法
- VC中SDK与MFC的区别浅析
- 浅谈MFC 改变控件大小和位置
- VC MFC非模态对话框的实现方法