Windows10 MFC OnPaintに関する質問です。 下記のコードでピクチャーボックス(例えば、IDC_STATIC_PICT2) に描画ができません。

Windows10 MFC OnPaintに関する質問です。 下記のコードでピクチャーボックス(例えば、IDC_STATIC_PICT2) に描画ができません。 Q1)ピクチャーボックスの描画のための正しいコードを お教え頂けますと大変有難いです。 ================== void CTondrawView::OnPaint() { CWnd* pWnd = GetDlgItem(IDC_STATIC_PICT2); CPaintDC dc(pWnd); int nOld = dc.SetBkMode(OPAQUE); dc.SetBkColor(RGB(0, 0, 0)); dc.SetTextColor(RGB(255, 0, 0)); CString str; static int no = 0; for (int i = 0; i < 4; i++) { str.Format(_T("CPaintDC i=%d no=%d"), i, no++); dc.TextOutW(100, 10 + 17 * i, str); } dc.SetBkMode(nOld); } ======================= 以上、よろしくお願いいたします。

C言語関連28閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

CTondrawView は FormView でしょうか? もしそうであれば、 CPaintDC dc(pWnd); を CClientDC dc(pWnd); にすればいいと思います。 当方で、新規プロジェクトを作成。ピクチャーコントロールを配置し、ご提示のソースコードを貼り付けて、CClientDC dc(pWnd); だけを修正して、描画が確認できました。

毎度お世話になります。 >CPaintDC dc(pWnd); CClientDC dc(pWnd); にすればいいと思います。 <--下記では、描画出来ないようですが。 CWnd* pWnd = GetDlgItem(IDC_STATIC_PICT2); CPaintDC dc(pWnd); int nOld = dc.SetBkMode(OPAQUE); dc.SetBkColor(RGB(0, 0, 0)); dc.SetTextColor(RGB(255, 0, 0)); str.Format(_T("CPaintDC no=%d"), no++); dc.TextOutW(100,, str); dc.SetBkMode(nOld); dc.DeleteDC(); 以上、宜しくお願いします。

ThanksImg質問者からのお礼コメント

毎度おせわになります 明快、丁寧な回答ありがとう御座いました。

お礼日時:9/17 16:50