お世話になります。
VC++初心者です。
VisualC++2005 MFCのCImageクラスを用いて、
モードレスダイアログにて、サブダイアログ(IDD_IMAGE_VIEW)の
ピクチャボックスにビットマップ画像を表示しようとしていますが、
表示されません。ダイアログの生成に問題があるのでしょうか。
まったく、検討がつかない状況です。
どなたか、解決方法を御存知でないでしょうか?
サブダイアログの起動コードは以下です。
cImageViewP = new CImageView(this);
cImageViewP->Create(IDD_IMAGE_VIEW);
cImageViewP->ShowWindow(true);
サブダイアログでのビットマップ表示コードは以下です。
ちなみに、テストで作ったモードレスでないダイアログでは
以下のコードでもビットマップ表示されます。
CImage img;
CBitmap *myBMP;
CDC *pDC = m_pict.GetDC();
CDC myDC;
CRect rect;
m_pict.GetClientRect(&rect);
pDC->Rectangle(&rect);
CClientDC myPictDC(&m_pict);
myPictDC.FillSolidRect(rect, RGB(255, 255, 255));
img.Load(_T("C:\\V_IF\\20091222_213031\\JobNo1\\img_1.bmp"));
myBMP = CBitmap::FromHandle(img);
myDC.CreateCompatibleDC(pDC);
CBitmap *oldBMP = myDC.SelectObject(myBMP);
pDC->BitBlt(0, 0, 1000, 1000, &myDC, 0,0,SRCCOPY);
myDC.SelectObject(oldBMP);
>>cImageViewP->ShowWindow(true);
ShowWindow関数の引数に true っておかしくないですか?
御指摘有難う御座いました。
cImageViewP->ShowWindow(SW_SHOW);
でした。
お世話になります。
ダイアログ表示を実行した後にビットマップ表示する
処理を行えば表示できました。
//ダイアログ表示処理
cImageViewP->ShowWindow(SW_SHOW);
//ビットマップ画像表示処理
CImage img;
CBitmap *myBMP;
CDC *pDC = m_pict.GetDC();
CDC myDC;
CRect rect;
m_pict.GetClientRect(&rect);
pDC->Rectangle(&rect);
CClientDC myPictDC(&m_pict);
myPictDC.FillSolidRect(rect, RGB(255, 255, 255));
img.Load(_T("C:\\V_IF\\20091222_213031\\JobNo1\\img_1.bmp"));
myBMP = CBitmap::FromHandle(img);
myDC.CreateCompatibleDC(pDC);
CBitmap *oldBMP = myDC.SelectObject(myBMP);
pDC->BitBlt(0, 0, 1000, 1000, &myDC, 0,0,SRCCOPY);
myDC.SelectObject(oldBMP);