1,
void CODrawCombo::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
DWORD dwStyle = ::GetWindowLong( m_hWnd, GWL_STYLE );//我在这一句打了个断点,可是断点一直没有被触发
ASSERT( dwStyle & CBS_DROPDOWNLIST ); //m_pDrawC->MeasureItem(lpMeasureItemStruct);
lpMeasureItemStruct->itemHeight=30;//这里无论改成多大的值都没有起作用。
}这个函数好象没有起作用?
2,自绘控件在DrawItem和OnDrawItem方法里绘制有什么区别?
void CODrawCombo::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
DWORD dwStyle = ::GetWindowLong( m_hWnd, GWL_STYLE );//我在这一句打了个断点,可是断点一直没有被触发
ASSERT( dwStyle & CBS_DROPDOWNLIST ); //m_pDrawC->MeasureItem(lpMeasureItemStruct);
lpMeasureItemStruct->itemHeight=30;//这里无论改成多大的值都没有起作用。
}这个函数好象没有起作用?
2,自绘控件在DrawItem和OnDrawItem方法里绘制有什么区别?
比如
ListBox::InsertItem(0,...)之类的ComboBox如果自绘是固定高度,则MeasureItem只调用一次,如果是变高,则MeasureItem会在每个元素加入时调用2. DrawItem是CWnd的一个虚函数,而OnDrawItem是对消息WM_DRAWITEM的响应,具体的区别……不太知道,我感觉
OnDrawItem是先被调用的,调用完成了调用DrawItem,只是感觉,楼主可以设两个断点跟进去看看