Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создал/Нарисовал свой контрол на WinAPi. Дайте совет / 16 сообщений из 16, страница 1 из 1
14.07.2013, 18:51
    #38330612
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Я создал свой контрол сделал его в стиле как в контакте поля ввода "Ваше имя", получился довольно красивый Edit красивый и с вертикальным выравниванием.

Этот edit я рисовал в стандартной оконной функции WndProc и вся реализация была распределана между сообщениями WM_PAINT,
WM_MOUSEMOVE, WM_LBUTTONDOWN и остальные.

В результате функция WndProc и все сообщения получились большими.

Дак вот вопрос: Как можно это сделать все в отдельном классе ?

создать в нем различные обработчики события OnClick, OnMoveMouse и т.д
и как создать в этом классе свою обработку сообщений GetMessage для моего контрола
а сам компонент создавать на форме функцией к примере CreateEdit(int x, int y, int cx, int cy ,...)

Если что не понятно написано прошу простить. Я попытаюсь объяснить заново.

В интернете не как не мог найти то что мне нужно.
...
Рейтинг: 0 / 0
14.07.2013, 18:53
    #38330613
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
gera3323,

Язык C++
...
Рейтинг: 0 / 0
14.07.2013, 19:49
    #38330632
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
gera3323,

MFC не пробовал использовать?
...
Рейтинг: 0 / 0
14.07.2013, 19:51
    #38330633
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
gera3323,

Я совсем не понимаю, что тебе нужно.
Особенно про get message для контрола.
Поясни.
...
Рейтинг: 0 / 0
14.07.2013, 19:53
    #38330635
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Ещё можно использовать WTL. Он бесплатный и легче MFC.
...
Рейтинг: 0 / 0
14.07.2013, 19:56
    #38330636
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
MasterZivgera3323,

Я совсем не понимаю, что тебе нужно.
Особенно про get message для контрола.
Поясни.

GetMessage Извлекает сообщения Windows и передает их в оконную функцию, а я хочу создать что то вроде своей оконной функции со своей очередью сообщений для своего контрола.
...
Рейтинг: 0 / 0
14.07.2013, 20:01
    #38330639
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
gera3323я хочу
Перехоти. Программируешь для Windows - играй по её правилам: обрабатывай сообщения,
которые тебе поступают и ничего более.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.07.2013, 20:25
    #38330648
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
gera3323MasterZivgera3323,

Я совсем не понимаю, что тебе нужно.
Особенно про get message для контрола.
Поясни.

GetMessage Извлекает сообщения Windows и передает их в оконную функцию, а я хочу создать что то вроде своей оконной функции со своей очередью сообщений для своего контрола.


Оконную функцию ты не мог не создать, если делал то, что ты сказал. Ты должен был регистрировать класс окна и там должна была быть оконная функция.

Очередь сообщений у окна не бывает, она одна на поток.
...
Рейтинг: 0 / 0
18.07.2013, 12:27
    #38335359
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
gera3323MasterZivgera3323,

Я совсем не понимаю, что тебе нужно.
Особенно про get message для контрола.
Поясни.

GetMessage Извлекает сообщения Windows и передает их в оконную функцию, а я хочу создать что то вроде своей оконной функции со своей очередью сообщений для своего контрола.

Именно так и работают стандартные контролы в windows такие как поля ввода кнопки и выпадающие списки.
И это наверно правильно т.к. каждый контрол обрабатывает только свою очередь сообщений что позволяет не сваливать все работу над событиями в одну кучу
простой пример с с тремя дочерними окнами () каждый контрол может иметь свою функцию обработки сообщений ну или общую на всех
в общем система просто вызывает функцию WNDCLASS.lpfnWndProc
...
Рейтинг: 0 / 0
18.07.2013, 12:32
    #38335372
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Малыхин Сергейв общем система просто вызывает функцию WNDCLASS.lpfnWndProc
не система, а DispatchMessage
...
Рейтинг: 0 / 0
18.07.2013, 13:07
    #38335460
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет

Вызовы WINAPI изнутри это тихий ужас это обертки для оберток оберток уже почти 30лет оборачивают так что я сильно сомневаюсь что именно из DispatchMessage вызывается WNDCLASS.lpfnWndProc впрочем это не важно
В общем если посмотреть на этот вопрос сверху и немного сбоку
то снизу мы ничего не увидим =)
...
Рейтинг: 0 / 0
18.07.2013, 13:12
    #38335477
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Малыхин Сергей,

не отослать сообщение, а просто вызвать оконную функцию, не усложняйте простые вещи.

На GetMessage вся работа с очередью закончилась
...
Рейтинг: 0 / 0
18.07.2013, 14:46
    #38335680
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Малыхин СергейИ это наверно правильно т.к. каждый контрол обрабатывает только свою очередь сообщений что позволяет не сваливать все работу над событиями в одну кучу


Ребята, ещё раз.

У каждого потока приложения очередь сообщений ТОЛЬКО ОДНА. Больше не бывает.
Сообщения всех окон приложения идут через одну единственную очередь сообщений приложения (это обычно, если приложение многопоточное -- возможно, через несколько).

На каждое окно очередь не создаётся.

Также у каждого КЛАССА окна СВОЯ функция окна.
...
Рейтинг: 0 / 0
18.07.2013, 14:48
    #38335686
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Вызовы WINAPI изнутри это тихий ужас это обертки для оберток оберток уже почти 30лет оборачивают так что

Нет там никаких обёрток.

я сильно сомневаюсь что именно из DispatchMessage вызывается WNDCLASS.lpfnWndProc впрочем это не важно

Не сомневайся. Именно DispatchMessage.
Впрочем, оконную функцию может вызвать любой, например, SendMessage.
...
Рейтинг: 0 / 0
18.07.2013, 14:49
    #38335688
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
Я не понял, что кому ещё не ясно с вопросом ?
...
Рейтинг: 0 / 0
18.07.2013, 14:56
    #38335700
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создал/Нарисовал свой контрол на WinAPi. Дайте совет
MasterZivТакже у каждого КЛАССА окна СВОЯ функция окна.
которую можно ЗАМЕНИТЬ у конкретного экземпляра окна.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создал/Нарисовал свой контрол на WinAPi. Дайте совет / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]