![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка иконки из ресурсов [D7, Win95/98, WinXP]
Zergling © (2003-09-24 06:29:00)День добрый уважаемые! Решил заняться WinAPI и у меня такя проблема: Загружаю иконку из ресурсов, но она не отображается в заголовке окна (стандартная иконка EXE файла), но эта иконка отображается в скомпелированном EXE файле! Почему же она не видна в заголовке окна?
И второй вопрсик, Какой вриант более оптимальный (так для интереса):
if Boolean(GetAsyncKeyState(VK_F1) shr 16) then
или
if (GetAsyncKeyState(VK_F1) shr 16) > 0 then
А это по поводу иконки:
Смотрел эту ветку, но ответ там не нашел http://www.delphimaster.ru/cgi-bin/forum.pl?id=1059119847&n=5
// Подключение файла ресурсов
{$R Proba.res}
Const
// Целочисленные индификаторы ресурсов
IDR_MENU1 = 101;
IDR_MENU2 = 102;
IDR_ICONWND_1 = 103;
IDR_CURSORWND_1 = 104;
var
WC: WNDCLASSEX; // Класс окна
WC_HWND: HWND = 0; // Дескриптор окна
WC_MSG: TMsg; // Сообщение окна
WC_HDC: HDC = 0; // Контекст графического устройства окна
// Заполнение свойств класса окна
with WC do
begin
cbSize := SizeOf(WNDCLASSEX); // Размер структуры
style := CS_HREDRAW or CS_VREDRAW or CS_OWNDC or CS_DBLCLKS; // Стили окна
lpfnWndProc := @WndProc; // Процедура для обработки сообщений
cbClsExtra := 0; // Дополнительные параметры
cbWndExtra := 0; // Дополнительные параметры
hInstance := hInstance; // Дескриптор приложения
hIcon := LoadIcon(hInstance, MAKEINTRESOURCE(IDR_ICONWND_1)); // Иконка окна
hCursor := LoadCursor(hInstance, MAKEINTRESOURCE(IDR_CURSORWND_1)); // Курсор окна
hbrBackground := HBRUSH(GetStockObject(BLACK_BRUSH)); // Фоновый цвет кисти окна
lpszMenuName := MAKEINTRESOURCE(IDR_MENU1); // Меню окна
lpszClassName := "WC_1"; // Имя класса окна
hIconSm := LoadIcon(0, IDI_APPLICATION); // Иконка окна (на панели задач)
end;
// Регистрация класса окна
RegisterClassEx(WC);
// Создание окна
WC_HWND := CreateWindowEx
(0, // Дополнительные стили окна
"WC_1", // Имя класса по образу которого создается окно
"Тестовая форточкка", // Заголовок окна
WS_OVERLAPPEDWINDOW, // Стиль окна
50, // Позиция по Х (Left)
50, // Позиция по Y (Top)
300, // Ширина окна (Width)
150, // Высота окна (Height)
0, // Дескриптор родительского окна (если оно есть)
0, // Дескриптор меню окна
HInstance, // Дескриптор экземляра приложения
nil); // Указатель на параметры создания окна
// Если окно не созданно, то выходим
if WC_HWND = 0 then Halt(1);
// Определение контекстного устройства окна
WC_HDC := GetWindowDC(WC_HWND);
// Если оно не определено, то выходим
if WC_HDC = 0 then Halt(1);
// Вывод окна на экран
ShowWindow(WC_HWND, SW_SHOWDEFAULT);
andre (2003-09-27 22:16:00) [1]
Не знаю в чём трабла, у меня WC.hIcon и WC.hIconSM вместе не живут. Попробуйте убрать hIconSM и всё будет работать (если, конечно, иконка в ресурсах действительно есть). У hIconSM приоритет выше, чем у hIcon (я так думаю), но как это преодолеть-не знаю.
Zergling (2003-09-27 06:22:00) [2]
Все еще жду ваших мыслей по поводу этого глюка.
Zergling (2003-09-26 09:16:00) [3]
Применил SysErrorMessage и получил сообщение, что указанный файл не найден. Странно, а ведь менюшки из этого файла ресурсов я цепляю. И опятьже по моему первому посту >> иконка отображается в скомпелированном EXE файле. Почему у меня такая гадость получается ? %-((
крот (2003-09-26 07:07:00) [4]
В SysUtils есть функция SysErrorMessage, она возвращает текстовое описание кода ошибки
Zergling (2003-09-26 06:25:00) [5]Игорь Шевченко © (25.09.03 14:17) [4]
GetLastError - возвращает 2, но что это за ощибка в справочной системе не нашел (error Messages & Warnings), не подскажите что за ошибка?
Игорь Шевченко (2003-09-25 14:17:00) [6]
Есть мысли. GetLastError вызывать в случае неуспешного выполнения функций.
...Уж сколько раз твердили миру...
clickmaker (2003-09-25 12:31:00) [7]
hIconSm := LoadImage(hInstance, MAKEINTRESOURCE(IDI_APPLICATION), IMAGE_ICON, 16, 16, 0);
Zergling (2003-09-25 09:08:00) [8]
Неужели все так плохо? У меня хоть в коде ошибок нет?
Zergling (2003-09-24 11:05:00) [9]
Мыслей нема?