定制自绘画的ComboBox高度
由 gougou 于 星期四, 2005-06-23 21:03 发表
今天写了一个自绘画的ComboBox,结果发现一个以前从来没有注意的问题,就是设定了OwnerDraw样式的ComboBox的高度被系统自动设定为比普通的ComboBox大那么几个像素,重载MesureItem方法,定制列表项目的高度也不解决问题,最后发现只要重载PreSubclassWindow方法,给ComboBox发一个CB_SETITEMHEIGHT的消息就可以了,代码示意如下
void CCommCBX::PreSubclassWindow() { //Let the parent do its thing CComboBox::PreSubclassWindow(); if (GetWindowLong(m_hWnd, GWL_STYLE) & CBS_HASSTRINGS) if (GetWindowLong(m_hWnd, GWL_STYLE) & CBS_OWNERDRAWVARIABLE) ::SendMessage(m_hWnd, CB_SETITEMHEIGHT, (WPARAM)-1, 12L); }