Set icon for a popup CFrameWnd window
Patricio Burbano -- pburbano@nuthena.com Monday, October 28, 1996 Environment: NT 4.0, MSVC 4.2b Hi all, I am trying to set the 16x16 icon for a popup frame window. I load the icon using HICON myIcon = AfxGetApp()->LoadIcon(ICON_ID); and then set it using SetIcon(myIcon, FALSE); However, when I run my application and display my popup window, the icon on the upper left corner of the caption bar is the 32x32 icon reduced, and looks bad. I am sure I have an icon with both 16x16 and 32x32 formats in my resources. Any insights on what is going on?
Eric Kenslow -- kenslowe@cdsnet.net Tuesday, October 29, 1996 [Mini-digest: 3 responses] Yes- you need to use LoadImage() to load the icon. CWinApp::LoadIcon() [as the documentation states, BTW] will ONLY load icons that are SM_CXICON pixels wide and SM_CYICON pixels high. LoadImage(), however, allows you to load alternate icon sizes. Here's some code showing how to load the 16x16 image: ... hIcon = (HICON)::LoadImage( ::AfxGetInstanceHandle(), MAKEINTRESOURCE( IDR_MAINFRAME ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR ); /* Eric Kenslow - Digital Lighthouse Inc. * webmaster@digilight.com * http://www.digilight.com */ ---------- > From: Patricio Burbano> To: mfclist > Subject: Set icon for a popup CFrameWnd window > Date: Monday, October 28, 1996 2:09 PM > > Environment: NT 4.0, MSVC 4.2b > > Hi all, > > I am trying to set the 16x16 icon for a popup frame window. I load the > icon using > > HICON myIcon = AfxGetApp()->LoadIcon(ICON_ID); > and then set it using > > SetIcon(myIcon, FALSE); > > However, when I run my application and display my popup window, the icon on > the upper left corner of the caption bar is the 32x32 icon reduced, and > looks bad. > > I am sure I have an icon with both 16x16 and 32x32 formats in my resources. > > Any insights on what is going on? > > -----From: Mario Contestabile Again, if memory serves me, this would be a doc. bug since it actually uses the 32x32 icon... mcontest@universal.com -----From: Jim Barry CWinApp::LoadIcon will try to load the 32x32 icon in your ICON_ID = resource first. You could either try doing LoadIcon on a icon resource = containing only a 16x16 icon, or use LoadImage instead. - Jim
| Вернуться в корень Архива |