歩き遍路 平成19年春(J1) 記録の準備

Vc++のMFCで分割窓のプログラム(2)
             描画を追加


 前のHP「Vc++のMFCで分割窓のプログラム(1)」を改造して描画を追加しました。
 教科書を離れて独自で歩み始めると、難問が立ちふさがります。MFCプログラミングは範囲が広く、奥深いです。
 なんとか、分割窓に描画を追加したいと暑い最中、冷や汗を流しています。

●追加した描画の動きとクラスとの関係

 改造したプログラムの動きとクラス一覧とプログラム画面との関係を、下の画面で説明します。
 左の画面は、上のペインにマウスで3回クリックした画面です。下のペインには、クリックした回数が3点とあります。
 中央のの画面は、追加で3回マウスをクリックしました。下のペインには、クリックした回数が6点とあります。
 右の画面は、クラス一覧とプログラム画面との関係を示します。





●MFC AppWizard が生成したCDiaryViewクラスの改造

 MFC AppWizard が生成したCDiaryViewクラスは、上のペインを制御を行います。
 
 改造内容は、マウスの軌跡を入力していたのを、マウスの左クリックを入力とします。
 そのため、OnMouseMoveとOnLButtonUp関数を削除して、OnLButtonDown関数を次の様に変更します。

 OnLButtonDown関数の変更点は、入力点情報を保存することと、新しく作成した CTextViewクラスに連絡する手段の追加です。
 CTextViewクラスに連絡する手段は、pDoc->UpdateAllViews(NULL); でウインドウメッセージを送ります。





●新しく作成した CTextViewクラスの改造

 新しく作成した CTextViewクラスは、下のペインを制御をします。

 改造内容は、OnUpdate関数をオーバーライドさせて、その関数内に文字列表示のプログラムを追加します。
 OnUpdate関数は、OnLButtonDown関数の終わりの方で追加した、UpdateAllViews(NULL)関数が発行するウインドウメッセージを受けるものです。




 マウスをクリックした回数を入手するため、次を実行します。

     CDiaryDoc* pDoc = GetDocument();
    int PointNum = pDoc->m_PtNum;

 TextView.h で次の内容を追加します。







ホームへ戻る