アプリにズームイン機能を実装しようとしています。ズームインを選択した場合、グラフは水平方向に 2 倍に拡大して、ウィンドウにグラフの半分だけが表示されるようにし、ウィンドウのサイズに関係なく残りの半分を表示するにはスクロールする必要があります。
ズーム倍率のズーム変数があります。次に onDraw(CDC &pDC) で:
//...set pen and others...
CRect rect;
GetClientRect(rect);
for (int x=0; x < zoomFactor*rect.Width(); x++)
//....draw the graph
次に onToolsZoomin() で:
void CMyGraphView::OnToolsZoomin()
{
zoom *= 2;
CRect rect;
GetClientRect(rect);
CSize sizeTotal;
sizeTotal.cx = zoom*rect.Width();
sizeTotal.cy = 0;
SetScrollSizes(MM_TEXT, sizeTotal);
this->RedrawWindow();
}
これを実行すると、ウィンドウにグラフの半分を正しく描画させることができ、グラフの半分だけを示すスクロールバーが表示されます。しかし、スクロールしようとすると、元の位置 (左下) に戻り、グラフの残りの半分が表示されません。