]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/bitmap.cpp
Enabled wxPostscriptDC to be used in wxMSW, if wxUSE_POSTSCRIPT
[wxWidgets.git] / src / msw / bitmap.cpp
index a68e54fa7dbf1e4e18c8b9bc21c7effa742771fb..c4b2b8bed5bf34724daf510fe1c60d47df11f32d 100644 (file)
@@ -144,6 +144,10 @@ bool wxBitmap::CopyFromIconOrCursor(const wxGDIImage& icon)
     refData->m_bitmapMask = new wxMask((WXHBITMAP)
                                         wxInvertMask(iconInfo.hbmMask, w, h));
 
+
+    // delete the old one now as we don't need it any more
+    ::DeleteObject(iconInfo.hbmMask);
+
 #if WXWIN_COMPATIBILITY_2
     refData->m_ok = TRUE;
 #endif // WXWIN_COMPATIBILITY_2
@@ -431,6 +435,9 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     if (depth == -1) depth = wxDisplayDepth();
     SetDepth( depth );
 
+    // Copy the palette from the source image
+    SetPalette(image.GetPalette());
+
     // create a DIB header
     int headersize = sizeof(BITMAPINFOHEADER);
     BITMAPINFO *lpDIBh = (BITMAPINFO *) malloc( headersize );
@@ -1080,7 +1087,7 @@ bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour)
 
     // scan the bitmap for the transparent colour and set the corresponding
     // pixels in the mask to BLACK and the rest to WHITE
-    COLORREF maskColour = wxColourToRGB(colour);
+    COLORREF maskColour = RGB(colour.Red(), colour.Green(), colour.Blue());
     m_maskBitmap = (WXHBITMAP)::CreateBitmap(width, height, 1, 1, 0);
 
     HDC srcDC = ::CreateCompatibleDC(NULL);