ComboBox自绘时如何改变控件高度
ComboBox自绘时怎么改变控件高度?
我用下载到的自绘类给ComboBox换肤之后想在类中添些代码让字体和控件变大,能把SetItemHeight这个函数填在里面直接实现吗
CComboBox* pCtl = (CComboBox*)GetDlgItem(IDC_CBCOLORPICKER);
pCtl->SendMessage(CB_SETITEMHEIGHT,(WPARAM)-1,(LPARAM)24); //改变控件本身的高度
pCtl->SetItemHeight(0,24); //改变下拉列表每个Item的高度
------解决方案--------------------
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
------解决方案--------------------
你自绘的时候用到了create函数,creat函数中的Rect参数,你可以吧这个rect中最后一个参数设置大点就行了
------解决方案--------------------
设置控件大小用MoveWindow
设置项高可以用SetItemHeight
设置字体可以用m_CmbBox.SetFont(g_pFont);
我用下载到的自绘类给ComboBox换肤之后想在类中添些代码让字体和控件变大,能把SetItemHeight这个函数填在里面直接实现吗
CComboBox* pCtl = (CComboBox*)GetDlgItem(IDC_CBCOLORPICKER);
pCtl->SendMessage(CB_SETITEMHEIGHT,(WPARAM)-1,(LPARAM)24); //改变控件本身的高度
pCtl->SetItemHeight(0,24); //改变下拉列表每个Item的高度
void CWEComboBox::OnPaint()
{
CPaintDC dc(this);
CRect rectCombo;
CBrush brushInser, brushOuter;
COMBOBOXINFO comboInfo;
CString strShow;
//获取控件信息
GetWindowText(strShow);
comboInfo.cbSize = sizeof(COMBOBOXINFO);
GetComboBoxInfo(&comboInfo);
if(comboInfo.stateButton==8)
{
m_stateDownBtn = DOWN;
}else if(m_stateDownBtn!=OVER)
{
m_stateDownBtn = NORMAL;
}
//设置重绘区域
GetClientRect(rectCombo);
//创建画刷
brushInser.CreateSolidBrush(RGB(240, 250, 255));
brushOuter.CreateSolidBrush(RGB(103, 103, 103));
//重绘
dc.FillRect(rectCombo, &brushInser);
dc.FrameRect(rectCombo, &brushOuter);
DrawPicture(&dc, m_stateDownBtn, comboInfo.rcButton);
DrawShowText(&dc);
}
------解决方案--------------------
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
------解决方案--------------------
你自绘的时候用到了create函数,creat函数中的Rect参数,你可以吧这个rect中最后一个参数设置大点就行了
------解决方案--------------------
设置控件大小用MoveWindow
设置项高可以用SetItemHeight
设置字体可以用m_CmbBox.SetFont(g_pFont);