我有一个CWnd (父),它包含一个网格控件,允许在它上绘制一些项。问题是,我想在上面画一些复杂的CWnds,但是网格控件只允许绘制从与CWnd无关的"ItemBase“类派生的项。
这个ItemBase类允许重写一个虚拟函数void drawItem(CDC *,CRect),该函数允许在所提供的CDC上和在裁剪的reagion CRect上绘制自己的绘图。
我的想法是将复杂的CWnds创建为父窗口的不可见的子窗口,然后在drawItem of ItemBase中使用CWnd::Paint on提供的CDC。
所以我要做的是:
因此,我期待在适当的地方研磨控制,一个适当的复杂的窗户将被油漆,但什么都不会发生。我试过使用PrintClient/PrintWindow而不是Print。我也在做一些MoveWindow的实验,比如把位置转换成固定的位置,但是没有帮助。
如果我在drawItem中直接在CDC上画任何东西(比如线条、点等)--一切都很好,只是打印功能似乎不像我所期望的那样。
有什么线索吗?
发布于 2012-12-03 13:29:38
我遇到的问题是,有一个剪辑区域被设置到疾控中心。所以,只要我在“错误”的地方画,什么也没有出现。
https://stackoverflow.com/questions/13347252
复制相似问题