Applied patch [ 1382552 ] Fixes GDI-ressource leak in wxStaticBitmap

Robert N.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-01-17 16:08:59 +00:00
parent 0975a8a065
commit 3dece6c4bc
2 changed files with 12 additions and 2 deletions

View File

@@ -269,8 +269,16 @@ void wxStaticBitmap::SetImageNoCopy( wxGDIImage* image)
LONG style = ::GetWindowLong( (HWND)GetHWND(), GWL_STYLE ) ;
::SetWindowLong( (HWND)GetHWND(), GWL_STYLE, ( style & ~( SS_BITMAP|SS_ICON ) ) |
( m_isIcon ? SS_ICON : SS_BITMAP ) );
::SendMessage(GetHwnd(), STM_SETIMAGE,
HGDIOBJ oldHandle = (HGDIOBJ)::SendMessage(GetHwnd(), STM_SETIMAGE,
m_isIcon ? IMAGE_ICON : IMAGE_BITMAP, (LPARAM)handle);
// detect if this is still the handle we passed before or
// if the static-control made a copy of the bitmap!
if (m_currentHandle != 0 && oldHandle != m_currentHandle)
{
// the static control made a copy and we are responsible for deleting it
DeleteObject(oldHandle);
}
m_currentHandle = (HGDIOBJ)handle;
#endif // Win32
if ( ImageIsOk() )