X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6c9a19aabab3a878b565e6c2a5f2a3824277c4dc..cd318cd31b8fd9876af7ba5f4878b90f446bd0f5:/src/msw/tbarmsw.cpp?ds=sidebyside diff --git a/src/msw/tbarmsw.cpp b/src/msw/tbarmsw.cpp index d10ddd60a8..f558a94b80 100644 --- a/src/msw/tbarmsw.cpp +++ b/src/msw/tbarmsw.cpp @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "tbarmsw.h" #endif @@ -34,10 +34,6 @@ #if wxUSE_TOOLBAR && defined(__WIN16__) -#if !defined(__WIN32__) && !wxUSE_IMAGE_LOADING_IN_MSW - #error wxToolBar needs wxUSE_IMAGE_LOADING_IN_MSW under Win16 -#endif - #if !defined(__GNUWIN32__) && !defined(__SALFORDC__) #include "malloc.h" #endif @@ -1103,20 +1099,16 @@ WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE WXUNUSED(hInstance), void *i WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap) { - HANDLE hDIB = wxBitmapToDIB((HBITMAP) hBitmap, 0); - if (hDIB) - { -#ifdef __WINDOWS_386__ - LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)MK_FP32(GlobalLock(hDIB)); -#else - LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)GlobalLock(hDIB); -#endif - HBITMAP newBitmap = (HBITMAP) CreateMappedBitmap((WXHINSTANCE) wxGetInstance(), lpbmInfoHdr); - GlobalUnlock(hDIB); + HANDLE hDIB = wxDIB::ConvertFromBitmap((HBITMAP) hBitmap); + if ( !hDIB ) + return 0; + + WXHBITMAP newBitmap = CreateMappedBitmap(hInstance, GlobalPtr(hDIB)); + GlobalFree(hDIB); - return (WXHBITMAP) newBitmap; - } - return 0; + + return newBitmap; } -#endif +#endif // wxUSE_TOOLBAR +