画像の表示倍率に合わせて図形も伸縮するオーバレイの生成方法を示します。
【プレビュー】
- 1. オーバレイへのポインタ
- CMainFrame のヘッダーに CFvOverlay のポインタを保管するメンバーフィールドを追加します。 後述のオーバレイの生成で CFvDisplay に追加したオーバレイを保管する為に使用します。 ここでは、m_overlay1 というインスタンス名で作成しています。
MainFrm.h
protected:
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
追加したポインタをコンストラクタで NULL 初期化します。
MainFrm.cpp
CMainFrame::CMainFrame()
{
m_overlay1 = NULL;
}
- 2. オーバレイの生成
- 下記のように CreateOverlay でオーバレイを生成し、SetScaling で伸縮属性を true に設定します。 ここでは、OnViewOverlay1 イベントハンドラ内に処理を記述しています。 メニュー項目の作成やイベントハンドラの作成方法については省略します。
MainFrm.cpp
void CMainFrame::OnViewOverlay1()
{
{
AfxMessageBox(_T("既に生成されています."));
return;
}
}
- 3-1. 図形の描画 (矩形)
- 前述で作成したオーバレイに図形を描画します。 ここでは傾きのある青い矩形の枠を描画しています。
- 3-2. 図形の描画 (画像)
- 次に画像を描画します。 ここでは、前述の矩形枠の半透明塗り潰しとして利用しています。