Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 7 of 7

Thread: MFC & OpenGL

  1. #1
    Junior Member Newbie
    Join Date
    Jan 2001
    Location
    ru
    Posts
    15

    MFC & OpenGL

    okay, first and foremost, i'm learning how
    to program with MFC withOUT using AppWizard.
    i'm doing this because i want to do it by
    myself before i use this tool.
    the reason why i'm stating this ahead of time
    is because every time i've posted to other
    forums, i kept getting yelled at about this
    and my question was never answered.
    okay, well...anywayz...

    okay, i created a FrameWnd, and i want
    to set up opengl on this, right?
    well, ChoosePixelFormat fails when i do this.

    so, i asked someone, and he explained
    that a FrameWnd just holds a View, so
    i create a View and i looked at it,
    and there's no way to "attach" it to the
    framewnd, so that obviously wouldn't work.
    well, i read more about them, and
    apparently, you need to use a document, right?

    am i completely wrong?
    or close but not close enough?

    i really love the way MFC is structured,
    because it just looks soo nice, and i'd
    really like to use it, but if it's THIS
    much trouble, then i'll just stick to
    normal C.

  2. #2
    Junior Member Newbie
    Join Date
    Feb 2000
    Location
    SubVobWee, near Rigel
    Posts
    22

    Re: MFC & OpenGL

    "Normal" C? lol!
    Never met a "Normal" C language before, only "Abnormal" C!
    What you should do is start coding with the Win32 API using C instead of that lame MicroCrap MFC using C++!
    MFC isn't at all certified to create high-speed 3D applications with, especialy with a 3D API (OpenGL) that's written in a different programming language then the one MFC requires.
    If you mean drawing GL stuff onto a FrameWnd with "set up opengl", then get a Device Context handle to the FrameWnd, at output you're data there!
    Setting the Pixel Format should work then...


    Mike The Spike

    PS. Forget Documents and views! Ever seen "Document Quake"? lol!

    [This message has been edited by Mike The Spike (edited 02-14-2000).]

  3. #3
    Junior Member Newbie
    Join Date
    Jan 2001
    Location
    ru
    Posts
    15

    Re: MFC & OpenGL

    well, sorry.
    i program with C++, but i mean like...
    non-MFC stuff...

    yeah, that's what i originally thought.
    you create a framewnd, and then get the DC
    to that, and Setup the pel format, etc...

    i'm doing this on the OnCreate function (or method, whatever) of the framewnd.
    but, for some reason, it won't let me Set the format. i'm guessing maybe i should just
    do a stupid little "hack" and set it on the
    initial WM_PAINT of the window to do all of
    the gl settings in there. but i want to do
    this the "proper" way.

    it's really annoying, but i just want to get
    it right, even if i'm not going to end up
    using MFC with OpenGL.

    thanx for replying rather then screaming at
    me saying i should stay completely away MFC
    and not answering my question like every
    other person that i've asked.

  4. #4
    Advanced Member Frequent Contributor
    Join Date
    Feb 2000
    Location
    France
    Posts
    880

    Re: MFC & OpenGL

    I am the one who told you that you had to create a view inside your Frame window.

    As I thought you were familiar with MFC, I didn't specify that a view is linked to a document (you guessed right !).

    Basically, for each of your application using MFC, you should have a CDocument-derived class and a CView-derived class.

    You connect them to the CFrameWnd using AddDocTemplate in the InitInstance of your application...

    I know this is not a full answer to your question but : if you are to use MFC WITHOUT AppWizard, you should at least create dummy programs with it to look at what it creates... Then you can understand it and reproduce it....

    I know it sounds stupid to tell you that (look and copy) but, in the end, if you are to use MFC, whatever you do, your code will look like what the AppWizard produces........

    If you need more things about MFC / OpenGL, contact me on my e-mail.

    Eric

    P.S. : I have been developping "professional" apps for my company using MFC/OpenGL since one year now and I can not see any problem with that (hey Mike ! )

  5. #5
    Junior Member Newbie
    Join Date
    Feb 2000
    Location
    SubVobWee, near Rigel
    Posts
    22

    Re: MFC & OpenGL

    LoL! Anonymous,why would someone scream? lol
    And Eric, I was just thinking about something 3D Realms and ID said about the use of MFC and OpenGL, I guess MFC isn't so bad if you've got some sort of OpenGL Class created or something. Anonymous,what you should do is
    use the OnPaint() event from MFC,because as it looks like it from here,you're FrameWnd doesn't have a Device Context yet when the OnCreate() event is fired. Allthough I don't know anything about MFC,here's what I think you should do.

    /* Create you're FrameWnd object */

    CFrameView myView;
    BOOL firstTime = TRUE; /* Are we starting?*/
    HDC FrameWndDC = NULL; /* myView's DC! */

    void myView::OnPaint(HDC itsDC)
    {
    FrameWndDC = itsDC;

    if(!firstTime)
    {
    /* Do one-time OpenGL stuff */
    }

    firstTime = FALSE; /* Don't do it again */
    }


    Now you've got it's DC!
    Place the OpenGL code anywhere between the if()'s braces, and it will be executed the first time the FrameWnd is drawn!
    Offcourse,I don't know what parameters come with the OnPaint() event, I presume it sends you the HDC of the window needing to be drawn. I stored the FrameWnd's HDC so it can be used by calls out of scope asswell.
    Tell me if it works.


    Mike The Spike

  6. #6
    Guest

    Re: MFC & OpenGL

    MFC and OpenGL, what a pain in the butt. I had the most trouble with PICKING in MFC.
    I thought I would recommend the book "OpenGL Programming for Win95 and NT" I think that is what it is called. It is the famous 'Red book' but the cover is white and it is written with MFC in mind. Although it tells you to use the appwizzard, it also tells you what to change in what functions created by the appwizzard as well as what functions to add. From this you should be able to do it from scratch. It turned out to be a pretty handy reference.

    (PS If YOU guys happen to master picking in MFC let me know.)

  7. #7
    Advanced Member Frequent Contributor
    Join Date
    Feb 2000
    Location
    France
    Posts
    880

    Re: MFC & OpenGL

    Hi Mike !

    If you have problems with Picking using MFC, do not hesitate to contact me on my e-mail.
    I am not a master but I have implements two techniques (GL_SELECT and back-buffer trick) and it works fine on all machines in my company....

    Eric

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •