![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить размеры иконки? [D6, WinXP]
Jel © (2004-05-26 12:42:00)Загружаю иконку вызовом
LoadImage(Handle, ResName, IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);
Рисую ее DrawIconEx (для сохранения оригинальных размеров).
Вопрос - а размеры-то как узнать? (иконка нестандартная и GetSystemMetric не помогает)
Jel (2004-05-26 16:44:00) [1]
> MBo © (26.05.04 15:56) [4]
Спасибо. То что нужно.
MBo (2004-05-26 15:56:00) [2]А GetObject для битмапа не поможет?
Jel (2004-05-26 15:53:00) [3]Дальше - хуже. Пишу
if GetIconInfo(IconArray[index], IcInfo) then begin
if GetBitmapDimensionEx(IcInfo.hbmMask, sz) then
shift := (ICONWIDTH - sz.cx) div 2
else ShowMessage(SysErrorMessage(GetLastError));
end
else shift := 0;
GetBitmapDimentionEx возвращает нулевые размеры.
Хелп лукаво сообщает -
The function returns a data structure that contains fields for the height and width of the bitmap. If those dimensions have not yet been set, the structure that is returned will have zeroes in those fields.
И добавляет для ясности -
The retrieved dimensions must have been set by the SetBitmapDimensionEx function.
Вроде все ясно - не установил сам, не получишь. Я не установил.
Вопрос - как получить размеры Bitmap?
Jel (2004-05-26 15:33:00) [4]
> присвоить хэндл иконки TIcon и посмотреть ее свойства
Пробовал. Всегда 32х32 :(
> Альтернатива - GetIconInfo и размеры битмапчиков.
Видимо так и придется извращаться.
MBo (2004-05-26 14:19:00) [5]проще всего, IMHO, присвоить хэндл иконки TIcon и посмотреть ее свойства.
Альтернатива - GetIconInfo и размеры битмапчиков.