vc mfc HDM_LAYOUT 问题!!!

didiaogao 2009-04-22 04:40:30
我画了一个CListCtrl ,然后呢。我想改变行头的高度。
需要继承CHeaderCtrl类,自己写。我就在网上找了一个例子
按照他的写法继承了CHeaderCtrl类,但是我看他的代码里面有这段代码
BEGIN_MESSAGE_MAP(CHeaderCtrlCl, CHeaderCtrl)
ON_MESSAGE(HDM_LAYOUT, OnLayout)
END_MESSAGE_MAP()

//这段代码是根据你传过来的倍数 进行设定行的高度的。
LRESULT CHeaderCtrlCl::OnLayout( WPARAM wParam, LPARAM lParam )
{
LRESULT lResult = CHeaderCtrl::DefWindowProc(HDM_LAYOUT, 0, lParam);
HD_LAYOUT &hdl = *( HD_LAYOUT * ) lParam;
RECT *prc = hdl.prc;
WINDOWPOS *pwpos = hdl.pwpos;

int nHeight = (int)(pwpos->cy * m_Height);
pwpos->cy = nHeight;
prc->top = nHeight;
return lResult;
}
我debug了一下。发现他的工程可以走到这个方法里面,我的却不能。

BEGIN_MESSAGE_MAP(CHeaderCtrlCl, CHeaderCtrl)
ON_MESSAGE(HDM_LAYOUT, OnLayout)
END_MESSAGE_MAP()
这段代码 我那没有自动生成 ,是我自己拷贝过去的。问题应该出在这个地方 哪个高手可以帮我解决一下。不胜感激!!!
...全文
431 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanweihuayan 2010-12-30
  • 打赏
  • 举报
回复
是不是没有设置属性啊!
View设置为Report
antserver 2010-11-17
  • 打赏
  • 举报
回复
我也遇到这个问题了 不知道怎么回事
正在郁闷中
didiaogao 2009-04-23
  • 打赏
  • 举报
回复
是不是倍数 都不重要,重要的是 怎么能响应OnLayout方法
DavidHsing 2009-04-22
  • 打赏
  • 举报
回复
干嘛要搞什么倍数不倍数的,直接指定不就行了?
给你我的代码


BEGIN_MESSAGE_MAP(CHeaderCtrlEx, CHeaderCtrl)
ON_MESSAGE(HDM_LAYOUT, OnLayout)
END_MESSAGE_MAP()

LRESULT CHeaderCtrlEx::OnLayout(WPARAM wParam, LPARAM lParam)
{
LRESULT lResult = CHeaderCtrl::DefWindowProc(HDM_LAYOUT, wParam, lParam);

HDLAYOUT& hdLayout = *reinterpret_cast<LPHDLAYOUT>(lParam);
LPRECT lpRect = hdLayout.prc;
LPWINDOWPOS lpWindowPos = hdLayout.pwpos;

lpRect->top = lpWindowPos->cy = 整数,你的高度;

return lResult;
}

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧