createwindow



Автор Judas Priest задал вопрос в разделе Другие языки и технологии

функция CreateWindow на С++ и получил лучший ответ

Ответ от Cyborg Terminator[гуру]
hMenu - идентификатор меню из ресурса или идентификатор контрола.hInstance - дескриптор текущего процесса или модуля DLLlpParam - в этом параметре можно передать указатель на свои какие-нибудь данные которые можно получить в обработчике сообщений WM_CREATE/WM_NCCREATE в структуре (LPCREATESTRUCT)lParam

Ответ от Ra Орально (98783)[гуру]
Помимо HWND, у окон и пунктов меню имеются идентификаторы HMENU.В отличии от HWND, эти идентификаторы задаются при написании программы, а не автоматически, и доступны только из данной программы - не являются глобальными и уникальными в системе.При обработке событий по HMENU определяют, каким элементом управления вызвано событие.Например.#define IDM_BUTTON1 1#define IDM_BUTTON2 2...CreateWindow(_T("BUTTON"), _T("Кнопка"), WS_CHILD | WS_VISIBLE,10, 10, 200, 100, hWnd, (HMENU)IDM_BUTTON1, hInst, 0);CreateWindow(_T("BUTTON"), _T("Кнопка"), WS_CHILD | WS_VISIBLE,220, 10, 200, 100, hWnd, (HMENU)IDM_BUTTON2, hInst, 0);...case WM_COMMAND:wmId = LOWORD(wParam);switch (wmId){case IDM_BUTTON1:// нажата кнопка 1break;case IDM_BUTTON2:// нажата кнопка 2break;}break;---HINSTANCE - дескриптор экземпляра программы.Он глобальный, также как и HWND.Все окна в программе привязаны к её HINSTANCE.Это обеспечивает уникальность имён оконных классов (wc.lpClassName) - если в другой программе попадётся окно с таким же оконным классом, окна не перепутаются.По той же причине окна в экземплярах одной программы изолированы друг от друга.Также это важно для окон глобальных классов - при регистрации оконного класса с флагом CS_GLOBALCLASS он становится глобальным - окна такого класса могут создаваться в приложениях с любыми HINSTANCE.Таковы классы BUTTON, EDIT и т. д.Избежать путаницы с ними, помогает HINSTANCE.Почему для идентификации окна не подходят HWND, спросите Вы?Дело в том, что окон одного и того же класса может быть несколько и они будут иметь разные HWND.Это характерно для динамического создания окон, как-то окна MDI.Такие окна есть в экзеле - они размещены в одном и том же окне и используют один и тот же оконный класс.---lpParam используется для передачи в WM_CREATE оконной процедуры окна указателя на некое значение через CREATESTRUCT.int x = 5;CreateWindowEx(... (void*)&x);...case WM_CREATE:int *x = (int*)((*(CREATESTRUCT*)(lParam)).lpCreateParams);И назначение его - тоже идентификация, только не виндой, а самой программой.Чтобы после динамического генерирования окон одного и того же класса в WM_CREATE можно было отличить окна друг от друга - и исходя из этого разместить на них нужные контролы.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: функция CreateWindow на С++
спросили в Chordeumatida
Какая резина лучше. Cordiant Polar,или Amtel Nord master
Cordiant Polar лучше Amtel Nord master особенно новая модель 2010 года она почти полностью слизана
подробнее...
спросили в Chordeumatida
Как сделать в C++ (WinAPI) окно Edit (CreateWindow) не активным для пользователя?
EnableWindow( hEdit, FALSE );

Это неактивным, реадонли нужно по-другому. Вроде можно и
подробнее...
спросили в Chordeumatida
Какая зимняя резина лучше лучше Kama Euro или Cordiant? Я взял Cordiant Polar 2
У меня кордиант полар, шипованная - великолепно, прошлой зимой бед не знал!
А летняя у меня
подробнее...
спросили в Chordeumatida
Очень много противоречивых отзывов о летней резине Cordiant Comfort. Так брать её или не стоит? Если нет, то что брать??
производителя посмотри.... ярославль?? ? самая лучшая резина в мире..., если хочеш деньги на ветер
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Chordeumatida
Dragon Age: Origins
Урон от одного удара определяется по формуле: TotalDamage = CritMod * (WeaponDamage + AttrDamage +
подробнее...
спросили в Chordeumatida
как использовать GroupBox в WinAPI C++?
Groupbox - это просто кнопка Button со стилем BS_GROUPBOX.
На кнопке Button вообще много
подробнее...
спросили в BIGBANG Chordeumatida
Подскажите коды в ГТА 2 Vice city
THUGSTOOLS - гaнгcтepcкoe opyжиe (1 ypoвeнь пo мoщнocти)
PROFESSIONALTOOLS - пpoфeccиoнaльнoe
подробнее...
спросили в BIGBANG Chordeumatida
бессмертие в ГТА Вайс-Сити
Grаnd Тheft Аutо: Viсe Сitу

Во время игры вводите:

THUGSTOOLS - гaнгcтepcкoe opyжиe
подробнее...
спросили в BIGBANG Chordeumatida
Люди чит на GTA Vice City
THUGSTOOLS - гангстерское оружие (1 уровень по мощности)
PROFESSIONALTOOLS - профессиональное
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*