0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 89
|
||||||
1 | ||||||
Создание простого родительского и дочернего окна в нем28.11.2012, 23:49. Показов 4544. Ответов 5
Метки нет Все метки)
(
Подскажите в чем ошибка? Появляется только родительское окно. Дочернее окно должно быть в родительском. Заранее спасибо.
Подскажите хоть в каком моменте ошибка а то совсем запутался..
0
|
|
28.11.2012, 23:49 | |
Ответы с готовыми решениями:
5
Закрытие дочернего окна при закрытии родительского
Как при создании дочернего окна передать ему указатель на static-переменную в оконной процедуре родительского? Как избавится от родительского консольного окна при создание WinAPI окна |
Исследователь
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
|
|
29.11.2012, 04:24 | 2 |
Скорее всего, причина в том, что вы просто не сделали ShowWindow() для дочернего окна. Вообще можно этого не делать, а просто указать стиль WS_CHILD для каждого окна, чтобы не "мучаться".
0
|
быдлокодер
1722 / 909 / 106
Регистрация: 04.06.2008
Сообщений: 5,655
|
|||||||||||
29.11.2012, 08:33 | 3 | ||||||||||
Добавлено через 21 минуту тут
#include <Windows.h>
#include <tchar.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //прототип функции int APIENTRY _tWinMain (HINSTANCE hInstance, //дискриптор приложения HINSTANCE hPrevInstance, //дискриптор предыдущей запущенной копии, NULL LPTSTR szCmdLine, //указатель на командную строку int iCmdShow) { WNDCLASSEX wndclass; //сведения о регестрируемом классе wndclass.cbSize = sizeof(wndclass); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_CROSS); wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = "HelloWin"; wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION); RegisterClassEx(&wndclass); //регистрируем класс окна HWND hWnd, hW; //дескриптор главного и дочернего окна hWnd = CreateWindowEx (WS_EX_TOPMOST, "HelloWin", "First Application", WS_OVERLAPPEDWINDOW, //комбинированный стиль окна 200,200, 500,500, NULL, NULL, hInstance, NULL); hW = CreateWindowEx (WS_EX_TOPMOST, "HelloWin", "2nd Application", WS_CHILD|WS_OVERLAPPEDWINDOW, 100,100, 200,200, hWnd, NULL, hInstance, NULL); if (!hWnd){ return -1; } ShowWindow(hWnd, SW_NORMAL); UpdateWindow(hWnd); ShowWindow(hW, SW_NORMAL); UpdateWindow(hW); MSG msg; while (GetMessage(&msg, hWnd, 0, 0)){ DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WndProc( HWND hw,UINT iMsg, WPARAM wParam, LPARAM lParam) { switch(iMsg){ case WM_CREATE: for (int i=0; i<100; i++){ MessageBeep(700);} return true; default: return DefWindowProc(hw, iMsg, wParam, lParam); } } Добавлено через 11 минут тут
0
|
Исследователь
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
|
|
29.11.2012, 08:42 | 4 |
А где TranslateMessage()? Это первое.
Второе: если ставится целью создать MDI-приложение, то в коде еще куча ошибок, иначе вы получаете просто окно с дочерним по отношению к нему другим окном. Это все равно, что на главной форме расположить, например, текстовый редактор. Примеры обоих приложений в прикрепленном файле.
0
|
быдлокодер
1722 / 909 / 106
Регистрация: 04.06.2008
Сообщений: 5,655
|
|
29.11.2012, 09:27 | 5 |
Да я сам знаю что всё плохо, пусть разбирается чё ему там надо
0
|
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 89
|
|
29.11.2012, 10:07 [ТС] | 6 |
Спасибо, навели на мысль. Все получилось
0
|
29.11.2012, 10:07 | |
Помогаю со студенческими работами здесь
6
Создание дочернего окна Создание дочернего окна
Создание дочернего окна в MVP Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |