簡體   English   中英

使用OpenGL渲染到Win32窗口的一部分

[英]Render with OpenGL to part of Win32 Window

我有一個常規的Win32窗口,我只想使用OpenGL渲染到該窗口的一部分,我發現了這個問題:

在常規窗口中使用OpenGL(Win32)

但是我真的不知道他們如何在窗口內創建面板並為其獲取DC。

基本上,我想要一個使用win32繪制按鈕,列表及更多內容的窗口,並且在同一窗口的某些指定部分中渲染opengl內容。

我嘗試使用glScissor並清除緩沖區,但這僅用黑色填充了整個屏幕,而我用透明顏色指定了該部分。

我也嘗試過使用glViewport,但這沒做任何事情。

您需要創建一個WinForms面板控件(假設您正在使用WinForms?),然后調用GetDC(panel.Handle),並將面板的Handle屬性作為參數傳遞。 這將為您提供DC來創建OpenGL上下文。

我最終創建了一個新的小部件,如下所示:

HWND OpenglHWND = CreateWindowW(L"Static", L"",
                  WS_CHILD | WS_VISIBLE | WS_BORDER,
                  200, 10, 300, 300, ParentWindowHandle, 0, 0, NULL);

之后,您獲得了所創建面板的HWND ,從這里像往常一樣初始化OpenGL,但是在創建上下文時,請使用之前獲得的HWND的DC! (基本上將GetDC(OpenGLHWND)用於OpenGL上下文)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM