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

Вниз

Загрузка иконки из ресурсов   Найти похожие ветки 

 
Zergling ©   (2003-09-24 06:29) [0]

День добрый уважаемые! Решил заняться WinAPI и у меня такя проблема: Загружаю иконку из ресурсов, но она не отображается в заголовке окна (стандартная иконка EXE файла), но эта иконка отображается в скомпелированном EXE файле! Почему же она не видна в заголовке окна?

И второй вопрсик, Какой вриант более оптимальный (так для интереса):
if Boolean(GetAsyncKeyState(VK_F1) shr 16) then
или
if (GetAsyncKeyState(VK_F1) shr 16) > 0 then

А это по поводу иконки:
Смотрел эту ветку, но ответ там не нашел http://delphimaster.net/view/4-1059119847/

// Подключение файла ресурсов
{$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);


 
Zergling ©   (2003-09-24 11:05) [1]

Мыслей нема?


 
Zergling ©   (2003-09-25 09:08) [2]

Неужели все так плохо? У меня хоть в коде ошибок нет?


 
clickmaker ©   (2003-09-25 12:31) [3]

hIconSm := LoadImage(hInstance, MAKEINTRESOURCE(IDI_APPLICATION), IMAGE_ICON, 16, 16, 0);


 
Игорь Шевченко ©   (2003-09-25 14:17) [4]

Есть мысли. GetLastError вызывать в случае неуспешного выполнения функций.

...Уж сколько раз твердили миру...


 
Zergling ©   (2003-09-26 06:25) [5]

Игорь Шевченко © (25.09.03 14:17) [4]

GetLastError - возвращает 2, но что это за ощибка в справочной системе не нашел (error Messages & Warnings), не подскажите что за ошибка?


 
крот   (2003-09-26 07:07) [6]

В SysUtils есть функция SysErrorMessage, она возвращает текстовое описание кода ошибки


 
Zergling ©   (2003-09-26 09:16) [7]

Применил SysErrorMessage и получил сообщение, что указанный файл не найден. Странно, а ведь менюшки из этого файла ресурсов я цепляю. И опятьже по моему первому посту >> иконка отображается в скомпелированном EXE файле. Почему у меня такая гадость получается ? %-((


 
Zergling ©   (2003-09-27 06:22) [8]

Все еще жду ваших мыслей по поводу этого глюка.


 
andre ©   (2003-09-27 22:16) [9]

Не знаю в чём трабла, у меня WC.hIcon и WC.hIconSM вместе не живут. Попробуйте убрать hIconSM и всё будет работать (если, конечно, иконка в ресурсах действительно есть). У hIconSM приоритет выше, чем у hIcon (я так думаю), но как это преодолеть-не знаю.



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

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

Наверх




Память: 0.49 MB
Время: 0.029 c
3-78856
Liavik
2003-11-03 16:59
2003.11.24
Проверка


1-78961
td
2003-11-11 23:53
2003.11.24
OpenDialog


6-79072
aj_ua
2003-09-30 15:17
2003.11.24
Разрыв Dial-up соединения под Windows 2000


1-78879
pasha_golub
2003-11-13 13:08
2003.11.24
Недостатки и достоинства кода


1-78996
Silver_
2003-11-10 16:45
2003.11.24
как правельно обратится к обьекту ТАКИМ образом.