102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
1

WM_CREATE: как узнать, какое окно создается?

25.03.2012, 21:02. Показов 4202. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот начал учить WinAPI
как можно узнать через
case
WM_CREATE:
какое окно создается
а то оно действует когда создаются окна а мне надо токо когда главное окно
я просто делал кнопки и мне надо будет потом перерисововать их
я написал функцию но мне надо чтоб она действовала токо при создании главного окна
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 21:02
Ответы с готовыми решениями:

Не создается кнопка в WM_CREATE
Здравствуйте. Собственно создаю кнопку в winapi обрабатывая WM_CREATE. Но она не создается... Ниже...

Создается окно и тут же закрывается. Как заставить окно оставаться рабочим открытым?
Как заставить окно оставаться рабочим открытым? Скопировал с одного исходника код (с++ WinApi) для...

Не создается окно
вот регистрация класса окна WNDCLASSEX wc = { sizeof( WNDCLASSEX ), CS_CLASSDC,...

Как узнать, свёрнуто ли окно?
Здрасте! Как можно узнать, свёрнуто ли окно? Функция IsIconic(HWND hwnd), почему-то, не...

9
Каратель
Эксперт С++
6608 / 4027 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.03.2012, 21:04 2
у каждого окна должна быть своя оконная процедура и ней соответсвенно WM_CREATE
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.03.2012, 21:07  [ТС] 3
я просто рисую кнопки в главном окне через CreateWindow()
какой параметр в етой функции отвечает за номер окна?
0
403 / 359 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
25.03.2012, 21:31 4
Taras_Z, номер указывать ненужно, WM_CREATE для главного окна
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
26.03.2012, 17:10  [ТС] 5
Сообщение WM_CREATE посылается тогда, когда программа запрашивает, вызовом какой функции CreateWindowEx или CreateWindow должно быть создано окно. Оконная процедура нового окна принимает это сообщение после того, как окно создано, но до того, как окно становится видимым. Сообщение посылается перед возвращением значения функцией CreateWindowEx или CreateWindow.
Когда создается окно а кнопка разве не окно?
0
4023 / 3280 / 920
Регистрация: 25.03.2012
Сообщений: 12,266
Записей в блоге: 1
26.03.2012, 17:15 6
Цитата Сообщение от Taras_Z Посмотреть сообщение
Когда создается окно а кнопка разве не окно?
Да, все кнопки - окна.
Но только твоя функция WndProc получает сообщения только для главного окна. У каждого окна есть своя WndProc, определяющая его реакцию на события.

Зачем тебе вообще обрабатывать событие "Создание кнопки"? Ты же её сам создаёшь!
1
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
26.03.2012, 17:17 7
Taras_Z, чтобы создать главное окно, надо сначала вызвать функцию RegisterClassEx. В нее же передается параметр типа WNDCLASSEX, который в свою очередь хранит адрес обработчика сообщений окна. Обычно все это выполняется только для диалоговых окон. Для всяких там кнопочек вызывать регистрировать класс окна не надо, потому что он заранее определен. Следовательно они пользуются стандартным обработчиком сообщений. Ваше же окно использует только один обработчик, указанный при регистрации класса окна.
1
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
26.03.2012, 17:22  [ТС] 8
Всё спасибо ч понял просто не знал что для каждого окна есть свой обработчик
не дочитал...

Добавлено через 3 минуты
еще одно как обработать нажатие на кнопку?
0
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
26.03.2012, 17:27 9
Цитата Сообщение от Taras_Z Посмотреть сообщение
как обработать нажатие на кнопку?
При нажатии должно передаваться сообщение WM_COMMAND, у него есть два параметра wparam и lparam. В lparam передается идентификатор нажатой кнопки.
Собственно надо в обработчике родителя (то есть Вашего окна) поймать сообщение WM_COMMAND. И по lparam можно определить, какую именно кнопку нажали. Идентификатор кнопки это уникальный номер, который Вы указывали при создании кнопки.
1
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
26.03.2012, 17:30  [ТС] 10
спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2012, 17:30
Помогаю со студенческими работами здесь

Не создается всплывающее окно
У меня абсолютно непонятная ошибка. Я не могу создать всплывающее окно. Я вроде бы всё сделал...

Не создается окно CreateWindow
#include <windows.h> #include <stdlib.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);...

Не создается диалоговое окно
Всем привет! Помогите новичку. Работаю в Dev-Cpp 5.11. Пытаюсь создать простое диалоговое окно с...

WinApi Не создается окно
Не знаю что произошло, но через пару запусков программы перестало создаваться окно. #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru