如何改变ComboBox组合框中edit和小三角的宽度,高手来啊,谢谢!
时间:2011-12-02
来源:互联网
ComboBox由edit控件和小三角btn组成(简称btn),不改变ComboBox控件高度时,btn的宽度和高度都是17个像素
用ComboBox的成员函数SetItemHeight(-1,24)设置后,edit的高度是24,btn的高度是26,但是btn的宽度仍然是17。
贴部分代码
void CWEComboBox::OnPaint()
{
CPaintDC dc(this);
CRect rectCombo;
CBrush brushInser, brushOuter;
COMBOBOXINFO comboInfo;
CString strShow;
//获取控件信息
GetWindowText(strShow);
comboInfo.cbSize = sizeof(COMBOBOXINFO);
GetComboBoxInfo(&comboInfo);
comboInfo.rcItem.right -= 9;
comboInfo.rcButton.left -= 9; if(comboInfo.stateButton==8)
{
m_stateDownBtn = DOWN;
}else if(m_stateDownBtn!=OVER)
{
m_stateDownBtn = NORMAL;
}
//设置重绘区域
GetClientRect(rectCombo);
//创建画刷
brushInser.CreateSolidBrush(RGB(255, 255, 255));
brushOuter.CreateSolidBrush(RGB(182, 126, 31));
//重绘
dc.FillRect(rectCombo, &brushInser);
dc.FrameRect(rectCombo, &brushOuter);
DrawPicture(&dc, m_stateDownBtn, comboInfo.rcButton);
DrawShowText(&dc);
}
其中红色的调整btn使宽高都变成26,方便加载位图,编译运行后,看起来没什么问题,但是我在ComboBox选择一个值后,点击下面,edit和btn就恢复他们的宽度,使我加载的位图只显示一部分,另一部分是空白,希望高手指点下,万分感谢!
作者: nearcheng 发布时间: 2011-12-02
作者: shen_wei 发布时间: 2011-12-02
作者: nearcheng 发布时间: 2011-12-02
作者: nearcheng 发布时间: 2011-12-02
作者: jc5566 发布时间: 2011-12-02
你的方法不行,刚试过了
作者: nearcheng 发布时间: 2011-12-02
作者: jc5566 发布时间: 2011-12-02
作者: jc5566 发布时间: 2011-12-02
我的就在于btn的宽度改不过来,始终17,我的操作:
btn.left -= 9;
edit.right -= 9;
这样重绘 btn上加载位图正常(既宽度26),但是点击btn选择后,点击其他地方,只显示btn默认的17像素的宽度。
作者: nearcheng 发布时间: 2011-12-02
你把你的程序发我一份,我帮你看看吧,估计是刷新的时候获取的大小改变了。
作者: jc5566 发布时间: 2011-12-02
作者: jc5566 发布时间: 2011-12-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28