设置列表头控件高度

     自绘列表头控件后,在XP主题下看起来还是不错的,但是当主题改变成Windows经典样式后头控件的高度也随之而变了,自绘的效果一下就是原形毕漏了.这个问题以前也在社区贴子中见过,有人说设置字体可以改变头控件的高度,但这终归不是好办法.

 

在这里介绍一个可以改变头控件高度的方法,这个方法实际上是一个头控件的消息HDM_LAYOUT,在MFC中IDE没有提这个消息的映射宏,但可以使用ON_MESSAGE宏来作映射,下面我写出示例代码:

<textarea cols="50" rows="15" name="code" class="cpp">//函数申明 afx_msg LRESULT OnLayout(WPARAM wParam, LPARAM lParam); //消息映射 BEGIN_MESSAGE_MAP(CSkinHeaderCtrl, CHeaderCtrl) ON_MESSAGE(HDM_LAYOUT, OnLayout) END_MESSAGE_MAP() //消息处理 LRESULT CSkinHeaderCtrl::OnLayout(WPARAM wParam, LPARAM lParam) { LRESULT lResult = CHeaderCtrl::DefWindowProc(HDM_LAYOUT, 0, lParam); HD_LAYOUT &amp;hdl = *( HD_LAYOUT * ) lParam; RECT *prc = hdl.prc; WINDOWPOS *pwpos = hdl.pwpos; //设置头控件高度 const int nHeight = 20; pwpos-&gt;cy = nHeight; prc-&gt;top = nHeight; return lResult; }</textarea>

 

这样就可以轻松搞定了,再也不会为主题改变而影响它的高度了!

你可能感兴趣的:(windows,XP,layout,ide,mfc)