Главная страница
    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.47 MB
Время: 0.009 c
4-79238
SH
2003-09-25 19:25
2003.11.24
Не работает enumprocesses


8-79070
JTAG
2003-07-28 13:39
2003.11.24
Преобразование текста в набор пикселов.


11-78872
microlab
2003-03-09 21:45
2003.11.24
Каталог программ


7-79196
@ndrew
2003-09-13 12:07
2003.11.24
Работа с формой.....


1-79041
yuri
2003-11-12 16:11
2003.11.24
Измерение точного времени по нажатию клавиши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский