首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个CWnd上画CWnd

在另一个CWnd上画CWnd
EN

Stack Overflow用户
提问于 2012-11-12 16:14:31
回答 1查看 547关注 0票数 0

我有一个CWnd (父),它包含一个网格控件,允许在它上绘制一些项。问题是,我想在上面画一些复杂的CWnds,但是网格控件只允许绘制从与CWnd无关的"ItemBase“类派生的项。

这个ItemBase类允许重写一个虚拟函数void drawItem(CDC *,CRect),该函数允许在所提供的CDC上和在裁剪的reagion CRect上绘制自己的绘图。

我的想法是将复杂的CWnds创建为父窗口的不可见的子窗口,然后在drawItem of ItemBase中使用CWnd::Paint on提供的CDC。

所以我要做的是:

  1. 我有一个网格控制。
  2. 我创建了一组复杂的窗口
  3. 我为每个复杂的窗口创建了一个从ItemBase派生的类对象
  4. 我在网格控件中添加了一组基本类型的ItemBase对象。
  5. 在drawItem(CDC *dc,CRect地区)我打电话给: >移动窗口(区域);//移动适当位置的窗口m_复杂度窗口->打印(dc,PRF_CLIENT);//呈现窗口

因此,我期待在适当的地方研磨控制,一个适当的复杂的窗户将被油漆,但什么都不会发生。我试过使用PrintClient/PrintWindow而不是Print。我也在做一些MoveWindow的实验,比如把位置转换成固定的位置,但是没有帮助。

如果我在drawItem中直接在CDC上画任何东西(比如线条、点等)--一切都很好,只是打印功能似乎不像我所期望的那样。

有什么线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-03 13:29:38

我遇到的问题是,有一个剪辑区域被设置到疾控中心。所以,只要我在“错误”的地方画,什么也没有出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13347252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档