1

Hi I created a dialog box within 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

The icon file contains different sizes of images i.e. 16x16, 32x32, 48x48 etc however the code above only allows it do be displayed as 32x32. Even if i change it to

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

.. it still shows as 32x32. How do you fully control icon size? My original intention was to display a bmp.

Any help most appreciated.

4

1 に答える 1

2

これは仕様による動作です。静的コントロール スタイルを参照してください。

スタイルは、CreateWindow パラメータの nWidth と nHeight を無視します。コントロールは、アイコンに合わせて自動的にサイズを変更します。LoadIcon 関数を使用するため、SS_ICON スタイルは次元 SM_CXICON および SM_CYICON のアイコンのみをロードできます。この制限は、SS_ICON に加えて SS_REALSIZEIMAGE スタイルを使用することで回避できます。

また、48x48 アイコンをプログラムで読み込んでコントロールに渡すことを妨げるものは何もありません。

于 2012-01-14T08:27:31.127 に答える