VCを勉強中でダイアログベースのテストサンプルを作っています。
CustomListはCWndを継承したクラスです。
そこで、親ウィンドウが受けたOnPaintのメッセージを
子ウィンドウでも受け取るにはどうしたらいいのでしょうか?
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 子ウィドウの作成
m_CustomWnd.Create(NULL, NULL, WS_CHILD, CRect(0, 0, 100, 100), this, 100);
return TRUE;
}
そんなことしなくても
子ウィンドウの領域に再描画が必要ならOnPaintが発生するから必要ないと思うんだけど。
CTestDlg::OnPaint内で
m_CustomWnd.Invalidate();
m_CustomWnd.UpdateWindow();
親ウィンドウの一部の描画のためのCTestDlg::OnPaintであっても
子ウィンドウの全体の描画をすることになるよ。
動作確認していないのでうまくいくかわかりません。
CTestDlg::OnPaint内で
m_CustomWnd.Invalidate();
m_CustomWnd.UpdateWindow();
両方とも試して見ましたが特に飛んでくる様子はありません。。
CCustomWndに下記の3つを追加しただけなのですが
なにか間違えていますでしょうか?
void CCustomWnd::OnPaint()
BEGIN_MESSAGE_MAP(CCustomWnd, CWnd)
ON_WM_SIZE()
ON_WM_PAINT()
END_MESSAGE_MAP()
afx_msg void OnPaint();
ウィンドウスタイルにWS_VISIBLEがないな。
ほかに何が必要かはわからない。
ありがとうございます。
WS_VISIBLEでOnPaintが呼ばれました。