I thought this one was fixed?
WBR,
Aleksey.
On Oct 30, 2008, at 9:15 PM, cfinck(a)svn.reactos.org wrote:
Author: cfinck
Date: Thu Oct 30 13:15:00 2008
New Revision: 37104
URL:
http://svn.reactos.org/svn/reactos?rev=37104&view=rev
Log:
Hack: Copy the toolbar image on our own instead of using CopyImage
to hackfix the messed up toolbar graphics as it was done for
previous releases.
Modified:
branches/ros-branch-0_3_7/reactos/dll/win32/comctl32/toolbar.c
Modified: branches/ros-branch-0_3_7/reactos/dll/win32/comctl32/
toolbar.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_7/
reactos/dll/win32/comctl32/toolbar.c?
rev=37104&r1=37103&r2=37104&view=diff
======================================================================
========
--- branches/ros-branch-0_3_7/reactos/dll/win32/comctl32/toolbar.c
[iso-8859-1] (original)
+++ branches/ros-branch-0_3_7/reactos/dll/win32/comctl32/toolbar.c
[iso-8859-1] Thu Oct 30 13:15:00 2008
@@ -2665,7 +2665,33 @@
TRACE("adding hInst=%p nID=%d nButtons=%d\n", bitmap->hInst,
bitmap->nID, bitmap->nButtons);
/* Add bitmaps to the default image list */
if (bitmap->hInst == NULL) /* a handle was passed */
- hbmLoad = (HBITMAP)CopyImage(ULongToHandle(bitmap->nID),
IMAGE_BITMAP, 0, 0, 0);
+ {
+ BITMAP bmp;
+ HBITMAP hOldBitmapBitmap, hOldBitmapLoad;
+ HDC hdcImage, hdcBitmap;
+
+ /* copy the bitmap before adding it so that the user's bitmap
+ * doesn't get modified.
+ */
+ GetObjectW ((HBITMAP)bitmap->nID, sizeof(BITMAP), (LPVOID)
&bmp);
+
+ hdcImage = CreateCompatibleDC(0);
+ hdcBitmap = CreateCompatibleDC(0);
+
+ /* create new bitmap */
+ hbmLoad = CreateBitmap (bmp.bmWidth, bmp.bmHeight,
bmp.bmPlanes, bmp.bmBitsPixel, NULL);
+ hOldBitmapBitmap = SelectObject(hdcBitmap, (HBITMAP)bitmap-
nID);
+ hOldBitmapLoad =
SelectObject(hdcImage, hbmLoad);
+
+ /* Copy the user's image */
+ BitBlt (hdcImage, 0, 0, bmp.bmWidth, bmp.bmHeight,
+ hdcBitmap, 0, 0, SRCCOPY);
+
+ SelectObject (hdcImage, hOldBitmapLoad);
+ SelectObject (hdcBitmap, hOldBitmapBitmap);
+ DeleteDC (hdcImage);
+ DeleteDC (hdcBitmap);
+ }
else
hbmLoad = CreateMappedBitmap(bitmap->hInst, bitmap->nID,
0, NULL, 0);