どうもはじめまして。
さっそくですが質問です。
現在フローチャートを作成し、それを実行すると結果が返ってくるという
プログラムを作成しております。
そのプログラム実行時に、フローチャート作成用のウインドウにフローチャートを描いて
いくと、
ある一定の長さを超えると、その先の内容が表示できなくなってしまいます。
スクロールバーをつけてみたのですが結果は変わりませんでした。
くだらない質問かもしれませんが、
この状況にはどのような原因が考えられますか?
アドバイスをお願いします。
あ、開発環境はWIN2000、VC++6.0、MFCです。
よろしくお願いします。
少なくとも、フローチャートをどうやって描いているのかが
分からないと、原因の考えようがありません。
申し訳ありません。
なにぶんVC初心者ですので答え方がよくわからないので、
下にプログラムの一部を載せます。
// 図記号描画処理
void ClsView::DrawInput(const POINT& Point, ClsProcess Process) {
// 図記号を描画する
POINT Input[] = {
{Point.x, Point.y + 23}, {Point.x + 203, Point.y },
{Point.x + 203, Point.y + 47}, {Point.x, Point.y + 47}};
m_pDC->Polygon(Input, 4);
m_pDC->MoveTo(Point.x + 100, Point.y);
m_pDC->LineTo(Point.x + 100, Point.y + 12);
m_pDC->MoveTo(Point.x + 102, Point.y);
m_pDC->LineTo(Point.x + 102, Point.y + 12);
// 処理内容を表示する
m_pDC->MoveTo(Point.x + 28, Point.y + 17);
m_pDC->SetTextColor(RGB(0, 0, 255));
m_pDC->TextOut(0, 0, Process.Data());
m_pDC->SetTextColor(RGB(0, 0, 0));
switch(ID(Process.Function())) {
case STRING: m_pDC->TextOut(0, 0, に文字列を入力する); break;
case VALUE: m_pDC->TextOut(0, 0, に数値を入力する); break;
default: break;
}
// 線記号を描画する
DrawLine(Point);
}
このような感じで描画を行っています。
初めにスタートとエンドを表示し、その間に処理を追加していくという形をとっています。
上のコードは「文字列・数値の入力」処理用のフローチャートの例です。
たびたび申し訳ありません。
ClsViewの基本クラスは何ですか?
もし、CViewなら、スクロールをサポートしていません。
CViewの代わりにCScrollViewを基本クラスにします。
(ファイル中のCViewを全て置換すればよいはず。)
そして、SetScrollSizes()で描画する範囲を設定すれば、
スクロール処理は自動的になされます。
なるほど。
dairygoodsさんどうもありがとうございました。
やってみます。
遅くなりましたが解決です。
ありがとうございました。