CreateDIBSection в MFC и рендеринг с использованием управления изображением - PullRequest
0 голосов
/ 21 февраля 2011

Я создаю раздел DIB в MFC с помощью вызова 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---------------------------------

Пожалуйста, помогите мне с этим. Есть ли какие-либо ограничения на использование HBITMAP Ручек?

1 Ответ

0 голосов
/ 21 февраля 2011
HBITMAP hGlobalBitMap = ...

Похоже, локальная переменная скрывает глобальную переменную.

...