fixed bug with loading standard icons

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2001-08-15 14:54:56 +00:00
parent c5639a8767
commit 9cb9fdb372

View File

@@ -493,11 +493,17 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
{ {
HICON hicon; 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 // 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 // standard icons (although why one would want to do it considering that
// we already have wxApp::GetStdIcon() is unclear) // we already have wxApp::GetStdIcon() is unclear)
#if defined(__WIN32__) && !defined(__SC__) #if defined(__WIN32__) && !defined(__SC__)
if ( desiredWidth != -1 && desiredHeight != -1 ) if ( hasSize )
{ {
hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON, hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON,
desiredWidth, desiredHeight, desiredWidth, desiredHeight,
@@ -510,7 +516,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
} }
// next check if it's not a standard icon // next check if it's not a standard icon
if ( !hicon ) if ( !hicon && !hasSize )
{ {
static const struct static const struct
{ {
@@ -528,11 +534,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
{ {
if ( name == stdIcons[nIcon].name ) if ( name == stdIcons[nIcon].name )
{ {
hicon = (HICON)::LoadImage((HINSTANCE)NULL, hicon = ::LoadIcon((HINSTANCE)NULL, stdIcons[nIcon].id);
stdIcons[nIcon].id,
IMAGE_ICON,
desiredWidth, desiredHeight,
LR_DEFAULTCOLOR);
} }
} }
} }