CListCtrl::DrawItem问题

changy 2007-06-08 11:38:49
在OnPaint里定义个CPaintDC, 就进不了DrawItem()函数了
好奇怪啊,怎么解决?
我想在OnPaint()里画窗口的背景
//class CMyListCtrl:public CListCtrl
CMyListCtrl::OnPaint()
{
CPaintDC dc(this);///////////
CListCtrl::OnPaint()
}
...全文
1010 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
changy 2007-06-22
  • 打赏
  • 举报
回复
up
changy 2007-06-19
  • 打赏
  • 举报
回复
up下
是不是用了CPaintDC就不能进入DrawItem,进了DrawItem后CPaintDC就不起作用
xundeng 2007-06-19
  • 打赏
  • 举报
回复
你都知道了用了CPaintDC不能进入DrawItem了 那你就不用好了
changy 2007-06-19
  • 打赏
  • 举报
回复
不用了怎么画List的背景?
changy 2007-06-14
  • 打赏
  • 举报
回复
SetBkColor可以设置行底色吗?貌似不行,我是希望窗口的底色是 白,浅蓝,白,浅蓝...,每隔一个
高度变化一下
再说了,CPaintDC都用不了,SetBkColor也没办法吧?
已经响应OnEraseBkgnd(){return true;}//要不会闪
OwnerDraw属性设置了的
changy 2007-06-13
  • 打赏
  • 举报
回复
晕,就是重载了DrawItem才出现的问题
rockally 2007-06-13
  • 打赏
  • 举报
回复
改变行的底色用SetBkColor函数就可以啊。如果希望绘制底色响应OnEraseBkgnd函数吧。
你如果希望响应DrawItem,则必须选上列表框的OwnerDraw属性,或者在列表框的PreSubclassWindow函数中添加ModifyStyle(0, BS_OWNERDRAW);
changy 2007-06-13
  • 打赏
  • 举报
回复
没人知道吗? 来两星星啊~~~~~

现在的问题是:我要自绘CListCtrl的Item所以重载了DrawItem()
其次我想绘画CListCtrl空白的地方(即没有列表项的地方),我把绘画代码放在OnPaint()里,发现
CPaintDC不能画图
代码结构大略如下
CMyListCtrl::DrawItem(){...}
CMyListCtrl::OnPaint()
{
DrawBkgnd();
CListCtrl::OnPaint();
}
引力场变动源 2007-06-11
  • 打赏
  • 举报
回复
貌似自绘列表框应该是重载DrawItem()?
引力场变动源 2007-06-11
  • 打赏
  • 举报
回复
你是怎么调用DrawItem()的?
changy 2007-06-11
  • 打赏
  • 举报
回复
up,就想问个明白,是不是用了CPaintDC就不能进入DrawItem,进了DrawItem后CPaintDC就不起作用?
changy 2007-06-09
  • 打赏
  • 举报
回复
顶个,没人知道吗?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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