Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
 Аватар для te_morituri
22 / 22 / 4
Регистрация: 17.10.2009
Сообщений: 281

Обработка сообщений от дочерних окон

17.10.2009, 12:04. Показов 4903. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Понимаю эт не серезный вопрос-но я новичок (изучаю Visul C++ токо месяц).
Проблема- есть дочирнее окно, в которому надо обработать нажатие мыши. Как это описать? я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
LRESULT CALLBACK RRegistryWndProc(HWND hTreeChild/*хендл дочирнего окна*/, UINT Message, UINT wParam, LONG lParam)
{
    
    switch(Message)
    {
 
case WM_LBUTTONDOWN :
 
    MessageBox(NULL,"klick","АААА",MB_OK);
return 0;
    }
    return DefWindowProc(hTreeChild,Message,wParam,lParam);
}
но ничего не получильсь((. Как сделать правильно? Заранеее спасибо)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2009, 12:04
Ответы с готовыми решениями:

Обработка сообщений от нескольких дочерних окон
Здравствуйте! Имеется программа, в главном окне 3 кнопки, по нажатию открывается одно из 3х дочерних окон. Нужно, чтобы каждое окно...

Получение сообщений от дочерних окон
Есть класс создающий дочернее окошко внутри основного окна. Все сообщения внутри Proc- дочернего окна работают но когда посылаю в...

Перехват сообщений дочерних окон
Каким образом перехватываются сообщения дочерних окон класа "button", "edit". Например при нажатии клавишы tab нужно переключать фокус с...

5
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
17.10.2009, 12:27
te_morituri, когда ты создаешь дочерное окно, ты всегда регистрируешь новый класс окна, и создаешь экземпляр этого класса. При создании класса окна, ты указываешь оконную процедуру (функцию, которая будет обрабатывать сообщений дочерного окна). Обработка будет подобной обработки главного окна.
1
 Аватар для te_morituri
22 / 22 / 4
Регистрация: 17.10.2009
Сообщений: 281
17.10.2009, 13:10  [ТС]
дело в том что:
C++
1
2
3
4
5
6
7
8
9
 hTreeChild=CreateWindow(WC_TREEVIEW,"",
               WS_VISIBLE|WS_TABSTOP|WS_CHILD|
               TVS_HASLINES|TVS_LINESATROOT|
               TVS_HASBUTTONS|WS_DLGFRAME,
               0,0,Rect.right,Rect.bottom,
               hWnd,
               NULL,
               hInst,
               NULL);
WC_TREEVIEW-эт клас дерево,он стандартный
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
17.10.2009, 13:14
te_morituri,
и оконная функция у него тоже стандартная.
чтобы присобачить к этому окну свою функцию, гоогле "сабклассинг"
1
 Аватар для te_morituri
22 / 22 / 4
Регистрация: 17.10.2009
Сообщений: 281
17.10.2009, 15:54  [ТС]
спасиб))) все работает. в гугле нарыл инфу, в MSDN наше пример.
нуна сделать было так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
WNDPROC TreeWndProc ;//огласить это в глобал
 
/**обработка сообщений с дерева**/
LRESULT APIENTRY EditSubclassProc(HWND hTreeChild,
                                  UINT Message, 
                                  UINT wParam, 
                                  LONG lParam)
{
    
    switch (Message)
        {
 
            case WM_LBUTTONDOWN :
 
        //  MessageBox(NULL,"klick","АААА",MB_OK);
            return 0;
            case WM_DESTROY:
            PostQuitMessage(0);
             return 0;
        }
return CallWindowProc(TreeWndProc, hTreeChild, Message, 
        wParam, lParam); 
 
}
 
 
LRESULT CALLBACK RegistryWndProc (HWND hWnd,UINT Message, UINT wParam, LONG lParam)
{
static HWND hTreeChild/*дерево*/;
 
switch (Message)
  {
 
  case WM_CREATE:
      hTreeChild=CreateWindowEx(WS_EX_CLIENTEDGE,WC_TREEVIEW,"",WS_VISIBLE|WS_CHILD|        WS_BORDER,0,0,100.100,100.100,hWnd,       NULL,hInst,NULL);
      SetWindowLong( hTreeChild,GWL_WNDPROC,LONG(RegistryWndProc));
// ...
но возникла маленькая проблема( - hTreeChild(дерево) реагирует токо на те события что описаны в EditSubclassProc. Стандартных событий нет. Их с нуля писать-эт неподсилу.
как мне дополнить стандартные события, а не заменить их?
0
 Аватар для te_morituri
22 / 22 / 4
Регистрация: 17.10.2009
Сообщений: 281
17.10.2009, 19:08  [ТС]
проблема решина!!!!!!!
нада было токо поменять событие на WM_LBUTTONDBLCLK

спасиб Monte-Cristo
и особое Rififi
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2009, 19:08
Помогаю со студенческими работами здесь

Обработка сообщений двух окон
Всем привет! Я разрабатываю небольшой физ эмулятор в котором требуется создать два окна. Некий интерфейс пользователя куда я буду вносить...

Фон дочерних окон
Здравствуйте, в общем ситуация обстоит так, нужно создать главное окно, и при левом клике на него должны появляться дочерние окна(максимум...

Минимизация дочерних окон
Здравствуйте! Есть задание: Написать приложение, обладающее следующей функциональностью: - при последовательном нажатии ...

Изменение размера дочерних окон
Имеется главное окно с тремя дочерними, конкретнее все 3 дочерних окна это контролы типа ListView, Tab control и обычное дочернее окно для...

Закрытие всех дочерних окон
У меня есть программа которая по нажатию ЛКМ создает дочернее окно. Мне нужно закрыть все дочерние окна когда их будет 5 или больше.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru