0

呼び出しを使用して、MFC で DIB セクションを作成していますCreateDIBSectionHBITMAPMFC プロジェクトの別のダイアログに渡す呼び出しから取得します。他のダイアログでは、CStatic::SetBitmap(HBITMAP)呼び出しを使用してビットマップをレンダリングしています。しかし、なぜか何も見えない。これが同じダイアログで行われる場合、これは完全に正常に機能しますが、あるダイアログでビットマップを作成し、別のダイアログで表示したいと考えています。

DIBSection を作成するためのコードは次のとおりです。

//-----------------BEGINNING OF FIRST DIALOG--------------------------------------------------

 LPVOID pViewBitmapBits = NULL;

   BITMAPINFOHEADER BMHeaderInfo;
   memset(&BMHeaderInfo, 0, sizeof(BITMAPINFOHEADER));
   BMHeaderInfo.biSize        = sizeof(BITMAPINFOHEADER);
   BMHeaderInfo.biWidth       = 800;
   BMHeaderInfo.biHeight      = 400;
   BMHeaderInfo.biPlanes      = 1;
   BMHeaderInfo.biBitCount    = 8;
   BMHeaderInfo.biCompression = BI_RGB;
   BMHeaderInfo.biSizeImage   = 0;
   BMHeaderInfo.biClrUsed     = 0;
   BMHeaderInfo.biClrImportant= 0;



   BITMAPINFO BMInfo;
   memset(&BMInfo, 0, sizeof(BMInfo));
   BMInfo.bmiHeader = BMHeaderInfo;
   BMInfo.bmiColors[0].rgbBlue=255;




  HBITMAP hGlobalBitMap = CreateDIBSection(m_pParentSheet->test.m_hDC, &BMInfo, DIB_RGB_COLORS, &pViewBitmapBits, NULL, NULL);
   SelectObject(m_pParentSheet->test.m_hDC, hGlobalBitMap);

//--------------------------END OF FIRST DIALOG----------------------------------


//-----------------------------BEGINNING OF SECOND DIALOG----------------------------------------

void CreateViewDlg::OnBnClickedButton2()

{

   m_pic.SetBitmap(hGlobalBitMap );

}

//------------------------------------END OF SECOND DIALOG---------------------------------

これで私を助けてください。HBITMAPハンドルの使用に制限はありますか?

4

1 に答える 1

0
HBITMAP hGlobalBitMap=..。

グローバル変数を隠すローカル変数のように見えます。

于 2011-02-21T14:48:54.153 に答える