C++ wxWidgets显示来自8位数组的位图

C++ wxWidgets显示来自8位数组的位图,c++,winapi,wxwidgets,C++,Winapi,Wxwidgets,我有一个生成数组的函数,我需要把它画到屏幕上。该阵列采用8位灰度图像的形式。如何将阵列正确地绘制到屏幕上?我有一个使用win32代码的应用程序的工作版本,它使用StretchDIBits来绘制图像。我的问题是,我可以/如何在wxWidgets中做类似的事情 相关工作win32代码: screen = LCD_image( calcs[slot].cpu.pio.lcd ) ; if (StretchDIBits( hdc,

我有一个生成数组的函数,我需要把它画到屏幕上。该阵列采用8位灰度图像的形式。如何将阵列正确地绘制到屏幕上?我有一个使用win32代码的应用程序的工作版本,它使用StretchDIBits来绘制图像。我的问题是,我可以/如何在wxWidgets中做类似的事情

相关工作win32代码:


screen = LCD_image( calcs[slot].cpu.pio.lcd ) ;
        if (StretchDIBits(  hdc,
                            rc.left, rc.top, rc.right - rc.left,  rc.bottom - rc.top,
                            0, 0, lcd->width, 64,
                            screen,
                            bi,
                            DIB_RGB_COLORS,
                            SRCCOPY) == 0) {
                            printf("error in SetDIBitsToDevice\n");
                        }


        if (BitBlt( hdcDest, rc.left, rc.top, rc.right - rc.left,  rc.bottom - rc.top,
            hdc, 0, 0, SRCCOPY ) == FALSE) printf("Bit blt failed\n");
相关非工作wxWidgets代码:

unsigned char *screen;
screen = LCD_image( calcs[gslot].cpu.pio.lcd ) ;
wxImage screenImage(rc.GetWidth(), rc.GetHeight(), screen, true);
wxBitmap bmpBuf(screenImage);
wxMemDC.SelectObject(bmpBuf);
wxDCDest->Blit(drawPoint.x, drawPoint.y, rc.GetWidth(), rc.GetHeight(), &wxMemDC, 0, 0);
wxMemDC.SelectObject(wxNullBitmap);

wxImage ctor所需的格式是RGB数据数组,您的LCD_图像函数不会以这种格式返回它。

wxImage ctor所需的格式是RGB数据数组,您的LCD_图像函数不会以这种格式返回它