このソースをOnInitDialog関数に書いても動作しません。
クリックすれば画像表示するようです。
デザイン用の画像なので最初から表示したいのですが表示しません。
どうしたらよろしいのですか?
CDC* myPictDC = m_pict.GetDC(); // 現在のDCを取得
CDC workDC; // 作業用DC
CBitmap myBMP; // ビットマップ処理用オブジェクト
CRect myRECT;
m_pict.GetClientRect(myRECT); // サイズ取得
myPictDC->FillSolidRect(myRECT, RGB(255, 255, 255)); // 全域を白で塗り潰す
myBMP.LoadBitmap(IDB_BITMAP1); // 画像読込
workDC.CreateCompatibleDC(myPictDC); // myPictDCと互換性のあるメモリDC
// を作成する
CBitmap* oldBMP = workDC.SelectObject(&myBMP); // myBMP選択
myPictDC->BitBlt(0, 0, 256, 192, &workDC, 0, 0, SRCCOPY); // 画像転送
workDC.SelectObject(oldBMP); // 元のビットマップに戻す
m_pict.ReleaseDC(myPictDC);
FAQみたいなもんだな。
OnInitDialogの時点ではウィンドウの描画前なので。
m_pictは子ウィンドウだと思うが
親ウィンドウで描画しても
タイミングによってはその後にm_pictが自分を描画することがある。
どういうタイミングかと聞かれても困るけど
そうなる可能性がある。
描画させたいときWM_PAINTが呼ばれます。
WM_PAINTで描画するのが基本。
こう言うとむかつくかもしれないが
基本だし
たくさん情報があるはずだからWebや本で調べてください。
m_pictを見えないウィンドウにして座標を示す目的だけに使用して
ダイアログのWM_PAINTでダイアログのDCで描画する手もある。
ありがとうございます!おかげで解決しました!
すいません、解決です!
ツイート | ![]() |