Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > почему иконка непрозрачная?


Автор: kearins 15.10.2006, 13:27
Добрый день! подскажите, почему у меня получается непрозрачная иконка?

в ресурсе задаю статический элемент icon:

ICO_HEADER_1                ICON    DISCARDABLE     "header1.ICO"
ICO_HEADER_2                ICON    DISCARDABLE     "header2.ICO"

ABOUTBOX DIALOG 22, 17, 171, 43
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
CAPTION "My Application"
FONT 8, "MS Sans Serif"
{
   CONTROL "MyApp", -1, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 3, 2, 16, 16
   CONTROL "Generic Application", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 28, 4, 100, 8
   CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 116, 26, 50, 14
   ICON    "ICO_HEADER_1", ICO_HEADER1, 5, 10, 32, 32
   ICON    "ICO_HEADER_2", ICO_HEADER2, 10, 15, 32, 32
}


В процедуре окна задаю иконку для статического элемента:

Код

       case WM_INITDIALOG: 

            {
              HICON hIconHeader1;
              HICON hIconHeader2;
              hIconHeader1 = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(ICO_HEADER_1));
              SendDlgItemMessage(hDlg, ICO_HEADER1, STM_SETICON, (LPARAM) hIconHeader1, 0);
              hIconHeader2 = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(ICO_HEADER_2));
              SendDlgItemMessage(hDlg, ICO_HEADER2, STM_SETICON, (LPARAM) hIconHeader2, 0);
            }
               return (TRUE);


Иконки частично накладываются, поэтому видно что они непрозрачные, хотя в самих иконках прозрачность есть. Иконки прилагаю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)