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()进行刷新时,页面会闪烁的很厉害。如果不调用这个函数,而只给单元格赋值,单元格的内容不会改变
...全文
399 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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); 有裁剪区 问题, 只有 需要 重绘的 区,才 在 这个 中

15,978

社区成员

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

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