Я вижу много учебных руководств и статей, показывающих мне, как сделать простую Windows-программу, которая является большой, но ни один из них не показывает мне, как сделать несколько окон.
Прямо сейчас у меня есть рабочий код, который создает и тянет многоуровневое окно, и я могу блитировать материал с помощью GDI для рисования чего-либо, что я хочу на нем, перетаскиваю его вокруг, даже делаю его прозрачным и т.д.
Но я хотел вторую прямоугольную область, к которой я могу потянуть, перетащить вокруг, и т.д. Другими словами, второе окно. Вероятно, хочу, чтобы это было дочерним окном. Вопрос, как я делаю его?
Кроме того, если кто-либо знает какие-либо хорошие ресурсы (онлайн предпочтительно) как статьи или учебные руководства для управления окнами в Windows API, совместно используйте.
Вы можете нажимать CreateWindow () более одного раза, если хотите. Цикл сообщений в вашем WinMain будет передавать события всем окнам, которые создает WinMain. Вы даже можете создать два перекрывающихся окна и установить родительское окно второго окна как дескриптор первого, если хотите.
Вы можете создать столько окон, сколько хотите, используя CreateWindow / CreateWindowEx, со связью между ними по вашему желанию (владелец / потомок).
Вы можете сделать окно «принадлежащим» другим с помощью:
SetWindowLongPtr(hwnd, GWLP_HWNDPARENT, (LONG_PTR) hwndParent);
Чтобы преобразовать окно в дочернее, используйте SetParent
.
Обратите внимание, что вызов SetWindowLongPtr
с GWLP_HWNDPARENT
не ведет себя как SetParent (я думаю, MSDN ошибочен). GWLP_HWNDPARENT
преобразует окно не в «дочернее», а в «принадлежащее».
Похоже, вам нужен Многодокументный интерфейс . Вот пример одного из них: