CGridCtrl网格无法显示或者内容显示不全

zyj_604 2014-01-23 02:48:00

void CGridCtrl::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (m_bDoubleBuffer) // Use a memory DC to remove flicker
{
CGridMemDC MemDC(&dc);
OnDraw(&MemDC);
}
else // Draw raw - this helps in debugging vis problems.
OnDraw(&dc);
}

当if为true时,网格无法显示或者内容显示不全

当点击对应的单元格时,单元格会显示出来。


当我把if语句关掉,不使用双缓冲时,
调用Refresh()进行刷新时,页面会闪烁的很厉害。如果不调用这个函数,而只给单元格赋值,单元格的内容不会改变
...全文
141 点赞 收藏 5
写回复
5 条回复
向立天 2014年02月24日
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
回复 点赞
liuh2013 2014年01月24日
CGridMemDC 的代码贴出来看看。
回复 点赞
schlafenhamster 2014年01月23日
GridCtl->refresh ; 还是 用 的 CPaintDC 吧 ? 这个 dc 有个 rcPaint 成员, 说明 窗口 哪里 要 重绘。只有 在 这个 rc 中 重绘, 才 可以,在 这个 rc 外 的 重绘 不起 作用 (即 clip 掉了) GridCtl->RedrawWindow() 试试
回复 点赞
zyj_604 2014年01月23日
引用 1 楼 schlafenhamster 的回复:
CPaintDC dc(this); 有裁剪区 问题, 只有 需要 重绘的 区,才 在 这个 中
我调用 GridCtl->refresh函数进行了重绘。还是不行啊。 另外,裁剪区问题,是指什么问题啊?
回复 点赞
schlafenhamster 2014年01月23日
CPaintDC dc(this); 有裁剪区 问题, 只有 需要 重绘的 区,才 在 这个 中
回复 点赞
发动态
发帖子
界面
创建于2007-09-28

7973

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告