Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

CreateIconIndirect - по разному работает в разных Win???   Найти похожие ветки 

 
Users   (2003-09-17 08:37) [0]

Делаю динамически иконку для помещения в Tray:


Var
IInfo : TIconInfo;
Img : hBitmap;
Msk : hBitmap;
Brush : HBrush;
BitCount : Integer;
...
begin
DC := CreateCompatibleDC(0);
BitCount := GetDeviceCaps(DC, BITSPIXEL);
Img := CreateBitmap(16, 16, 2, BitCount Div 2, Nil);
Msk := CreateBitmap(16, 16, 1, 1, Nil);
SelectObject(DC, Img);
Brush := CreateSolidBrush(ColorBack);
With Rect Do
Begin
Left := 0;
Right := 16;
Top := 0;
Bottom := 16;
End;
FillRect(DC, Rect, Brush);
DeleteObject(Brush);
...
Добавляю текст, и т.д.
..
MainIcon := CreateIconIndirect(IInfo);
DeleteObject(Img);
DeleteObject(Msk);
DeleteDC(DC);


В 2000 и XP работает нормально, в Win 98 вместо иконки получается Dump какого то участка памяти.

Скорее всего причина в создании Img (наверное не верно делаю). Может кто сталкивался...


 
MBo ©   (2003-09-17 08:46) [1]

какова причина использования двух цветовых плоскостей в
Img := CreateBitmap(16, 16, 2, BitCount Div 2, Nil);?

Да и не лучше ли для ксорного образа использовать CreateCompatibleBitmap?


 
Users   (2003-09-17 11:26) [2]

Да, моя ошибка.

Заменил на :
Img := CreateBitmap(16, 16, 1, BitCount, Nil);

Т.е. UINT cBitsPerPel должен совпадать с битность текущего видеорежима? На 2000 проверил - работает, проверю на 98.

Спасибо.

CreateCompatibleBitmap создаст bitmap в соответствии контекстом "рабочего стола" (явно не монохром), а мне же нужно ч/б образ. Или я не прав?


 
MBo ©   (2003-09-17 12:28) [3]

прав.



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.06 c
3-40802
Alex_x
2003-10-22 10:35
2003.11.13
Странная ситуация С ADO запросом


1-41627
oleg_SYS
2003-10-26 11:04
2003.11.13
Нужен компонент Memo с неограниченным размером вводимого текста


3-40852
3APA3A
2003-10-20 23:38
2003.11.13
Что такое MSSQL?


1-41554
Ev1972
2003-10-27 16:39
2003.11.13
Как распарсить html страничку в Delphi?


1-41355
Rookie
2003-10-30 16:29
2003.11.13
Как корректно закрыть форму при обработке события onShow?