2012-01-14 98 views
1

您好我创建的Win32中的对话框:显示图标

ABOUTBOX DIALOG DISCARDABLE 32, 32, 180, 100 
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU 
FONT 8, "MS Sans Serif" 
BEGIN 
    DEFPUSHBUTTON "OK",IDOK,66,80,50,14 
    ICON "ID_MYICON_2",IDC_STATIC,0,0,48,48 
    CTEXT "comment1",IDC_STATIC,40,12,100,8 
    CTEXT "comment2",IDC_STATIC,7,40,166,8 
    CTEXT "comment3",IDC_STATIC,7,52,166,8 
END 

的图标文件包含不同大小的图像,即16×32×32,48×48等不过以上只是码允许它做显示为32x32。即使我将其更改为

ICON "ID_MYICON_2",IDC_STATIC,0,0,16,16 

..它仍然显示为32x32。你如何完全控制图标大小?我的初衷是显示一个bmp。

任何帮助最受赞赏。

+0

如果只在您的* .ico中包含48x48图标文件,会发生什么情况? – Mikhail 2012-01-14 06:39:05

回答

2

这是行为设计​​。请参阅Static Control Styles

该样式忽略CreateWindow参数nWidth和nHeight; 控件会自动调整大小以适应图标。 由于LoadIcon功能使用 ,因此SS_ICON样式只能加载 尺寸SM_CXICON和SM_CYICON的图标。除了SS_ICON之外,还可以使用SS_REALSIZEIMAGE样式绕过 此限制。

此外,没有任何东西阻止您以编程方式加载48x48图标并将其传递给控件。

+0

谢谢你。工作过一种享受。 – owl7 2012-01-14 12:03:36