私は MFC を使用しており (ただし、これは Win32 にも当てはまります)、描画したいビューがあります。だから私は OnDraw メソッドをオーバーライドしています。ここにちょっとした疑似コードがあります。私は次のようにコーディングしています:
void OnDraw(DC* pDC)
{
foreach(Node n in nodes)
{
n->DrawOnCanvas(pDC)
}
}
これは素晴らしいOOソリューションだと思いました。しかし、私は問題に遭遇しました。最初の DC の周りに境界線を引きたいのですが、ノードにこれを知られたくありません。ノードが 0,0 から始まる完全なキャンバス サイズに対して相対的に描画するようにしたい (オフセットについてはわからない)。親ウィンドウの境界線に関するノードの知識を与えると、面倒に見えます。
このような問題をどのように解決しますか?既存の DC に関連する新しい DC を定義するにはどうすればよいですか?