0

我正在使用调用在 MFC 中创建一个 DIB 部分CreateDIBSection。我HBITMAP从调用中得到一个,我将它传递到我的 MFC 项目中的另一个对话框。在另一个对话框中,我使用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---------------------------------

请帮我解决一下这个。HBITMAPHandles的使用有什么限制吗?

4

1 回答 1

0
HBITMAP hGlobalBitMap = ...

看起来像隐藏全局变量的局部变量。

于 2011-02-21T14:48:54.153 回答