http://www.gamedev.net/community/forums/topic.asp?topic_id=291682
Edit: Это не простой вопрос. Если вы не знаете, какое дочернее окно находится под Win32, вы можете оказаться в гораздо лучшем положении. Однако просить кого-нибудь дать вам полное объяснение системы оконного окна - это не подлый подвиг.
Вот обзор:
В основном вам нужно создать дочернее окно, которое может быть сделано с помощью CreateWindow создать окно со стилем WS_CHILD и с его параметром hWndParent, установленным на оконной ручке вы хотите новое окно быть ребенком.
При создании окна вы будете иметь, обязательно, создать window procedure При вызове DispatchMessage из вашего сообщения насоса (The Loop, который делает Get/PeekMessage, а затем отправляет сообщения в сообщении насос). Внутри процедуры окна вы можете включить тип сообщения и обработать каждое сообщение, отправленное в ваше окно.
Здесь вы можете обрабатывать такие вещи, как настройка. В вашем начальном окне будет либо WM_CREATE, либо WM_INITDIALOG (в зависимости от того, какой тип окна вы создаете). Именно оттуда вам нужно создать дочерние окна (не забудьте позвонить ShowWindow, чтобы они были видны!). С этого момента вы можете настроить устройство DirectX для прикрепления к дескриптору дочернего окна (HWND).
Кроме того, если вы хотите, чтобы иметь возможность изменить размер окна, вам также необходимо учитывать дело WM_SIZE. Однако я бы настоятельно рекомендовал, чтобы все остальное работало, даже начиная изучать это, поскольку оно становится очень сложным, так как вам нужно будет уничтожить и воссоздать устройство DirectX так, чтобы оно было правильным.
В любом случае это простой обзор. Я надеюсь, что это помогает!
Вы используете фреймворк или строго Win32 API? –
win32 API, я думаю, но я тоже использую Visual Studio 2008. – Newbie
Итак, вы используете необработанные вызовы API, а не MFC? – Johnsyweb