MFC ダイアログ exe で GDI などでの描画を行うときは,通常「Picture Control」を使用する.
メンバ変数として CStatic を割り当てて,その変数(ウィンドウ)に対して描画する.
CWnd::GetDlgItem や ::GetDlgItem でも良い.
単体テスト用など,それほど重要でないプロジェクトでダイアログに直接描画したい時がある.
リサイズ可能なダイアログの場合,Picture Control のリサイズなども意外と面倒なため.
VC 2022 で,MFC の「ダイアログ ベース」として作成.
ダイアログの基本クラスは「CDialog」とした.
CDlgDrwDlg::OnPaint() の else 部分を次の様に変更.
{
// CDialog::OnPaint();
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
rect.DeflateRect(10, 10);
dc.Rectangle(rect);
}
}
ダイアログの「プロパティ」-「透明化」は「True」の方が良さそう.
https://itl.mish.work/i_Tools/Doc/blog/vc/DlgDrw.zip