Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 16

Не закрывается дочернее окно

08.10.2012, 12:15. Показов 1477. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, объясните пожалуйста, почему дочернее окно не закрывается и вообще ни на что не реагирует. И как это можно исправить.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "windows.h"
 
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
char szIconName[]="MYICON"; 
char szProgName[]="Progname"; 
char szText[]="";
char szTitle1[]="Example";
 
HINSTANCE hInst;
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
 
HWND hWnd; 
MSG lpMsg; 
WNDCLASS w; 
 
 
w.lpszClassName=szProgName; 
w.hInstance=hInstance; 
w.lpfnWndProc=WndProc; 
w.hCursor=LoadCursor(NULL, IDC_ARROW);
w.hIcon=LoadIcon(hInstance, szIconName); 
w.lpszMenuName=0; 
w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
w.style=CS_HREDRAW|CS_VREDRAW; 
w.cbClsExtra=0;
w.cbWndExtra=0;
 
 
if(!RegisterClass(&w))
return 0;
 
 
hWnd=CreateWindow(szProgName, 
    "№4", 
WS_OVERLAPPEDWINDOW, 
100, 
100, 
500, 
400, 
(HWND)NULL, 
(HMENU)NULL, 
(HINSTANCE)hInstance, 
(HINSTANCE)NULL); 
 
 
ShowWindow(hWnd, nCmdShow);
 
UpdateWindow(hWnd);
 
while(GetMessage(&lpMsg, NULL, 0, 0)) { 
TranslateMessage(&lpMsg); 
DispatchMessage(&lpMsg); 
}
return(lpMsg.wParam);
}
 
//Функция окна
LRESULT CALLBACK WndProc(HWND hWnd, UINT messg,
WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HWND hw;
HINSTANCE hInst;
PAINTSTRUCT ps; 
 
 
switch(messg)
{
 
int x,y;
 
 
 
case WM_LBUTTONDOWN:
    {
        hw = CreateWindow("STATIC",szTitle1,WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                    300,300,150,200,0,0,NULL,0);
 return 0;
    }
 
 
case WM_DESTROY:
PostQuitMessage(0); 
break;
 
default:
return(DefWindowProc(hWnd, messg, wParam, lParam)); 
}
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.10.2012, 12:15
Ответы с готовыми решениями:

Дочернее окно копируется в не дочернее(хотя не должно)
При нажатии кнопки появляется окно, но вместо того, что бы отрисоваться как надо, в него копируется дочернее окно главного окна. При...

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

Дочернее окно
Задание: дочернее окно должно убегать от курсора мыши в пределах рабочей области родительского окна. Вот код: #include...

6
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
08.10.2012, 18:40
Оно у тебя не дочернее. Оно вообще непонятно какое.

Добавлено через 2 минуты
Чтобы оно было дочерним, 4-й с конца параметр должен быть HANDLE родительского окна.
Если должно быть элементом управления то должен присутствовать стиль WS_CHILD.
Класс STATIC - зарегистрированное имя элемента управления.
1
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 16
08.10.2012, 20:00  [ТС]
Цитата Сообщение от lazybiz Посмотреть сообщение
Оно у тебя не дочернее. Оно вообще непонятно какое.

Добавлено через 2 минуты
Чтобы оно было дочерним, 4-й с конца параметр должен быть HANDLE родительского окна.
Если должно быть элементом управления то должен присутствовать стиль WS_CHILD.
Класс STATIC - зарегистрированное имя элемента управления.
C++
1
2
        hw = CreateWindow(NULL,szTitle1,WS_CHILD,
                    300,300,150,200,hWnd,0,NULL,0);
Вот так вот вы умели в виду?
Так вообще ничего не выводится...
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
08.10.2012, 20:18
Не совсем. А что должно быть?
1
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 16
08.10.2012, 20:30  [ТС]
Нужно, чтобы при нажатии левой кнопки мыши по основному окну, выводилось дочернее и чтоб его можно было закрыть и свернуть.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
08.10.2012, 21:16
C
1
2
3
WM_LBUTTONDOWN:
    CreateWindow( szProgName, "дочернее", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 200, 200, 500, 400, hWnd, NULL, hInstance, NULL );
    return 0;
hInstance при этом должен быть объявлен глобально.
1
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 16
08.10.2012, 21:58  [ТС]
Заработало, спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.10.2012, 21:58
Помогаю со студенческими работами здесь

Дочернее окно
Есть код, в нём создал главное окно, и дочернее. Но как сделать так, что бы по щелчку на дочернее окно, для него появлялось ещё одно...

Дочернее окно
Не могу создать дочернее окно. Выдает ошибку. Заранее спасибо за любую помощь: LRESULT CALLBACK ChildProc(HWND hWnd, UINT uMsg, WPARAM...

Дочернее окно
Доброго времени суток. Продолжаю писать свою программу, возникла проблема. Я пытался сделать, чтобы дочернее окно открывалось так: скрин....

Дочернее окно
Создаю дочернее окно - оно создается но перетаскивать его за пределы окна родителя нельзя, а мне нужно чтобы можно было, эксперементировал...

Показать дочернее окно
господа у меня дочернее окно находится в состаянии SW_HIDE затем в программе делаются определённые действия и дочернее окно должно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru