drem1lin
@drem1lin
чуть программист, чуть чуть админ...

Почему рисуется только одно окно?

Здравствуйте, я пытаюсь написать небольшую утилиту на с++ с использованием winapi и столкнулся с проблемой. Есть основное окно, в нем хочу создать несколько похожих дочерних, один под одним для элементов из БД и еще одно пустое, для добавления элемента. Написал код, но вижу только одно окно. Начал искать в чем беда, когда оставил только одно окно, то оно создается. Потом я сместил окно с элементом бд, и за ним окна добавления нет. Почему оба окна не создаются вместе?
for (i = 0; i < keys.size(); i++)
			{
				keys[i].Register(hWnd, 1);
				Child = CreateWindowEx(0, CHILD_CLASSNAME, L"Child 1", WS_CHILDWINDOW | WS_VISIBLE,
					WindowRectSize.left + 50,
					WindowRectSize.top + (int)i * 102,
					WindowRectSize.right,
					100,
					hWnd,
					NULL,
					g_hInst,
					(LPVOID)(&keys[i]));

				ShowWindow(Child, SW_SHOW);
				UpdateWindow(hWnd);
			}

			Child = CreateWindowEx(0, CHILD_CLASSNAME, L"Child 999", WS_CHILDWINDOW | WS_VISIBLE,
				WindowRectSize.left,
				WindowRectSize.top + (int)i * 102,
				WindowRectSize.right,
				100,
				hWnd,
				NULL,
				g_hInst,
				NULL);

			ShowWindow(Child, SW_SHOW);
			UpdateWindow(hWnd);


Естественно все возвращаемые значения проверял, и брекпойнт срабатывает дважды в WndProc
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
drem1lin
@drem1lin Автор вопроса
чуть программист, чуть чуть админ...
В общем здесь все написано правильно! проблема решалась с помощью Spy++. С помощью него определил, что окно создается, а указав нарисовать границы увидел что граница нарисована там где надо. Далее начал искать уже внутри дочернего окна и оказалось, что неправильно математически задал место появления контролов. Они появлялись вне этого окна. И их было не видно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы