Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

hInstance   Найти похожие ветки 

 
Dmk   (2003-05-02 18:09) [0]

При создании окна с помощью CreateWindow используется
параметр hInstance. Что он означает?


 
vuk   (2003-05-02 18:22) [1]

Читаем Help:

hInstance

Identifies the instance of the module to be associated with the window.

Означает это, что hInstance идентифицирует экземпляр модуля(приложения или dll), с которым будет связано это окно.


 
Dmk   (2003-05-02 18:33) [2]

Если данное окно будет иметь стиль Child, то к чему
его привязывать? К Application.Handle? или к MainForm?


 
vuk   (2003-05-02 21:00) [3]

А при чем здесь hInstance?


 
Dmk   (2003-05-02 21:32) [4]

Вот и я не пойму при чем здесь hInstance :)
если в 0 ставишь, тоже работает.
Может есть где подробное объяснение.
В TCustomForm например создается свой экземпляр:
FClientInstance := Classes.MakeObjectInstance(ClientWndProc);
Я просто не понимаю связи hInstance и WindowProc.
И для чего это нужно??????


 
nikkie   (2003-05-02 23:22) [5]

>если в 0 ставишь, тоже работает.
hInstance
Windows 95/98: [in] Handle to the instance of the module to be associated with the window.
Windows NT/2000: This value is ignored.


 
Dmk   (2003-05-02 23:57) [6]

Все tnx разобрался :)
//Windows NT/2000: This value is ignored.
ничего подобного - не игнорируется.
Если 0, то окно будет под управлением Application


 
nikkie   (2003-05-03 01:26) [7]

>Все tnx разобрался :)
ну-ну.
>Если 0, то окно будет под управлением Application
можешь написать про это в microsoft


 
Dmk   (2003-05-03 02:18) [8]

Вместо того чтобы объяснить
вы господин Адрианов издеваетесь.
Может я неверно понял, так что ж с того?
Вы наверно сразу поняли когда разбирались с hInstance?
И к вашему сведению: мозги у всех по разному устроены.


 
Almaz   (2003-05-03 03:44) [9]


> Dmk © (02.05.03 21:32)
> Вот и я не пойму при чем здесь hInstance :)
> если в 0 ставишь, тоже работает.
> Может есть где подробное объяснение.
> В TCustomForm например создается свой экземпляр:
> FClientInstance := Classes.MakeObjectInstance(ClientWndProc);
> Я просто не понимаю связи hInstance и WindowProc.
> И для чего это нужно??????

Здается мне, у вас произошла некоторая путаница в понятиях :)
1. Параметр hInstance, передаваемый функции CreateWindow - это, как правильно сказал vuk, идентификатор экземпляра модуля, с которым ассоциируется окно (а еще точнее - адрес, куда этот модуль был загружен в виртуальном адресном пространстве процесса). НИКАКОГО отношения к WindowProc он НЕ ИМЕЕТ. В Win9x в качестве этого параметра необходимо передавать значение глобальной переменной hInstance. В Win2k/XP этот параметр и вовсе игнорируется.

2. Теперь о функции MakeObjectInstance - эта функция также не имеет НИКАКОГО отношения к hInstance, передаваемому CreateWindow. MakeObjectInstance существует из-за того, что в качестве оконной функции (WindowsProc) не может быть указан ни один метод какого либо класса (т.к. для любого метода класса первым параметром должен быть передан указатель Self и т.п.) Поэтому создатели VCL пошли на следующую хитрость - с помощью функции MakeObjectInstance для каждого объекта создается заглушка оконной функции, которая попросту передает управление соостветствующему методу данного класса, и в качестве оконной функции для создаваемого окна указывается именно она.


 
Dmk   (2003-05-03 04:03) [10]

2 Almaz © (03.05.03 03:44)
Я Вам очень благодарен. Спасибо.

PS. С 9 утра сижу. Уже мозги клинит. Всем спокойной ночи.



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

Форум: "WinAPI";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
3-7343
Sakses
2003-06-07 16:34
2003.07.03
параметры


14-7658
INTAARI
2003-06-16 18:42
2003.07.03
Где можно взять WinSocket 2.0 и DCOM


14-7660
marconi8
2003-06-11 22:51
2003.07.03
удалить файл, если pc внезапно вырубился


14-7655
Zergling
2003-06-16 09:37
2003.07.03
Как удалить сие важные для системы WIN2000 файлы?


1-7516
ddrx
2003-06-21 19:40
2003.07.03
Как проверить занятость всех ячеек в StringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский