Hi,
I want to synchronize my change from ReactOS with the Wine tree. Unfortunetly I can't test it and I don't even know if it compiles under Wine. So if anyone want to take care of it, here it is.
Regards, Filip
--- static.c Tue Feb 10 20:09:04 2004 +++ static.c Mon Mar 15 21:34:06 2004 @@ -122,6 +122,7 @@ static HBITMAP STATIC_SetBitmap( HWND hwnd, HBITMAP hBitmap, DWORD style ) { HBITMAP hOldBitmap; + LONG full_style = GetWindowLongA( hwnd, GWL_STYLE );
if ((style & SS_TYPEMASK) != SS_BITMAP) return 0; if (hBitmap && GetObjectType(hBitmap) != OBJ_BITMAP) { @@ -129,7 +130,7 @@ return 0; } hOldBitmap = (HBITMAP)SetWindowLongA( hwnd, HICON_GWL_OFFSET, (LONG)hBitmap ); - if (hBitmap) + if (hBitmap && !(full_style & SS_REALSIZEIMAGE)) { BITMAP bm; GetObjectW(hBitmap, sizeof(bm), &bm); @@ -559,6 +560,7 @@ HBRUSH hbrush; HDC hMemDC; HBITMAP hBitmap, oldbitmap; + LONG full_style = GetWindowLongA( hwnd, GWL_STYLE );
GetClientRect( hwnd, &rc ); hbrush = (HBRUSH)SendMessageW( GetParent(hwnd), WM_CTLCOLORSTATIC, @@ -573,8 +575,17 @@ if (!(hMemDC = CreateCompatibleDC( hdc ))) return; GetObjectW(hBitmap, sizeof(bm), &bm); oldbitmap = SelectObject(hMemDC, hBitmap); - BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, - SRCCOPY); + if (full_style & SS_CENTERIMAGE) + { + BitBlt(hdc, (rc.right - bm.bmWidth) >> 1, + (rc.bottom - bm.bmHeight) >> 1, + bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, SRCCOPY); + } + else + { + BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, + SRCCOPY); + } SelectObject(hMemDC, oldbitmap); DeleteDC(hMemDC); }