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

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

17.10.2009, 12:04. Показов 4846. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru