我正在使用 MFC(但这也适用于 Win32)并且我有一个想要绘制的视图。所以我重写了 OnDraw 方法。这是一些伪代码,我正在这样编码:
void OnDraw(DC* pDC)
{
foreach(Node n in nodes)
{
n->DrawOnCanvas(pDC)
}
}
我认为这是一个不错的 OO 解决方案。但是我遇到了一个问题。我现在想在初始 DC 周围画一个边界,但我不希望节点知道这一点。我希望节点仍然相对于从 0,0 开始的完整画布大小进行绘制(并且不知道偏移量)。如果我向节点提供有关父窗口中边框的知识,它似乎很混乱。
你如何解决这样的问题?如何定义相对于现有 DC 的新 DC?