From: Vadim Zeitlin Date: Wed, 15 Aug 2001 14:54:56 +0000 (+0000) Subject: fixed bug with loading standard icons X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9cb9fdb372467eed8d214e892ac99bb1854c5f25 fixed bug with loading standard icons git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/gdiimage.cpp b/src/msw/gdiimage.cpp index d97e57e0fa..64ad5b730c 100644 --- a/src/msw/gdiimage.cpp +++ b/src/msw/gdiimage.cpp @@ -493,11 +493,17 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, { HICON hicon; + // do we need the icon of the specific size or would any icon do? + bool hasSize = desiredWidth != -1 || desiredHeight != -1; + + wxASSERT_MSG( !hasSize || (desiredWidth != -1 && desiredHeight != -1), + _T("width and height should be either both -1 or not") ); + // try to load the icon from this program first to allow overriding the // standard icons (although why one would want to do it considering that // we already have wxApp::GetStdIcon() is unclear) #if defined(__WIN32__) && !defined(__SC__) - if ( desiredWidth != -1 && desiredHeight != -1 ) + if ( hasSize ) { hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON, desiredWidth, desiredHeight, @@ -510,7 +516,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, } // next check if it's not a standard icon - if ( !hicon ) + if ( !hicon && !hasSize ) { static const struct { @@ -528,11 +534,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, { if ( name == stdIcons[nIcon].name ) { - hicon = (HICON)::LoadImage((HINSTANCE)NULL, - stdIcons[nIcon].id, - IMAGE_ICON, - desiredWidth, desiredHeight, - LR_DEFAULTCOLOR); + hicon = ::LoadIcon((HINSTANCE)NULL, stdIcons[nIcon].id); } } }