Click here to Skip to main content
15,119,116 members
Articles / Multimedia / OpenGL
Posted 24 Oct 2001


27 bookmarked

How to draw OpenGL to a window you created in a dialog box with the resource editor

Rate me:
Please Sign up or sign in to vote.
5.00/5 (8 votes)
24 Oct 2001
How to draw OpenGL to a window you created in a dialog box with the resource editor without manually using CreateWindow.

Sample Image - screenshot.jpg


This example code I created explains and shows how you can draw OpenGL into a window that you created with the resource editor, without having to call CreateWindow. In my example, I used VC 6's New project creator wizard to start my project and then created a dialog box. In the dialog box, I have created 4 edit style windows. The technique used is simply retrieve the handle of the edit windows, retrieve the HDC for each window and pass them into your regular OpenGL initialization and rendering. What is important to note in my example is you have to set the current rendering context to the desired window before painting to it.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Chong Hin Ooi
United States United States
No Biography provided

Comments and Discussions

Questionbackground colour Pin
Member 1205870229-Nov-15 21:02
MemberMember 1205870229-Nov-15 21:02 
GeneralPlease check this article Pin
Sharjith9-Nov-10 13:16
professionalSharjith9-Nov-10 13:16 
GeneralBUG: This code is unsafe without CS_OWNDC Pin
Member 122382917-Nov-09 16:03
MemberMember 122382917-Nov-09 16:03 
While what you've done works *most of the time*, it's unsafe and could cause fatal errors under certain conditions.

OpenGL windows need to have the CS_OWNDC window style set. Without this, under low-memory conditions Windows (may) recycle your HDC even if you have not released it. While you will not lose the HDC--the handle remains valid--subhandle setup within the context may change making your render context invalid and (possibly) crashing the driver.

I was curious about the example specifically *because* I was looking for some way to use dialog-editor created windows without running into the CS_OWNDC problem and without using SetWindowLong to alter the window style: merely flagging CS_OWNDC with SetWindowLong is not enough, as some other window styles that may already be attached to the class such as WS_EX_COMPOSITED are unsafe to use with CS_OWNDC.

I'm bummed. I'd still love an (easy) way to do this.

You might still use dialog editor created windows if you created your own subclassed custom control that set the CS_OWNDC style appropriately, but that's a lot more code, aargh.
Questionbackground color Pin
labs132423-Aug-06 8:16
Memberlabs132423-Aug-06 8:16 
GeneralRe: background color Pin
Gita.Bairavi12-Mar-08 21:52
MemberGita.Bairavi12-Mar-08 21:52 
QuestionHow to run 2 different(or same) OpenGL objects in one DialogBox? Pin
werter13-May-04 22:20
Memberwerter13-May-04 22:20 
QuestionHow to make a multi-viewport in OpenGL with MFC? Pin
Member 91399621-Apr-04 2:41
MemberMember 91399621-Apr-04 2:41 
QuestionHowto Draw something in an edit box? Pin
Member 66110026-Oct-03 0:55
MemberMember 66110026-Oct-03 0:55 
Generalmouse events Pin
Anonymous21-Jan-03 11:24
MemberAnonymous21-Jan-03 11:24 
GeneralRe: mouse events Pin
Anonymous8-Jun-03 2:33
MemberAnonymous8-Jun-03 2:33 
GeneralRuns well the first time . . . Pin
4-Apr-02 9:34
suss4-Apr-02 9:34 
GeneralRe: Runs well the first time . . . Pin
21-Apr-02 13:27
suss21-Apr-02 13:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.