Newbie: Wie bekomme ich OpenGL in eine GroupBox?
-
JPSelter schrieb:
TravisG schrieb:
das hier soll jetzt kein spam sein, ich hab auch keine antwort, aber bist du ernsthaft nicht auf die idee gekommen diese paar zeichen einfach mal auszutauschen und auszuprobieren obs wirklich so geht?
Nicht alles so wörtlich nehmen. Natürlich habe ich es probiert in der Wartezeit nach dem Posten, es sollte Euch ja auch nur das Problem verdeutlichen. Dass es nicht ganz so einfach ist, dachte ich mir schon.
ok, dann entschuldigung
-
Irgendwie komme ich trotzdem nicht weiter. Alle Tutorials die ich finde, sind entweder total überladen, oder nutzen den ganzen Fensterbereich als OpenGL-Fläche. Ich habe den obigen Code nun so einbezogen:
void COpenGLInit::InitOpenGL() { static PIXELFORMATDESCRIPTOR pfd= { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW| PFD_SUPPORT_OPENGL| PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 24, //24-bit color 0,0,0,0,0,0, 0,0,0,0,0,0,0, 32, //32 bit depth buffer 0,0, PFD_MAIN_PLANE, //Main layer type 0, 0,0,0 }; HWND wnd= GetDlgItem(hWnd, IDC_OPENGL); HDC hDC = GetDC(wnd); GLuint PixelFormat = ChoosePixelFormat(hDC, &pfd); SetPixelFormat(hDC,PixelFormat,&pfd); HGLRC hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); }Was kommt als nächstes? Liege ich mit dieser Reihenfolge richtig:
1. OpenGL-Init (der obige Code)
2. OpenGL-Draw innerhalb von OnDraw oder OnPaint (wo isn da der Unterschied)
3. Innerhalb von 2. die eigentlich Draw-Routine, z.B. Würfel zeichnenIch suche einfach nur einen minimalen Code für mein schon bestehendes CDialog Programm. Viele Tuts (wie dieses hier) verstehe ich nicht, weil es kein Standard-CDialog ist, ich auch bei MFC noch Neuling. Eigentlich ist es sicher gar nicht so schwer, aber erstmal wissen wie es geht

-
-
Hallo JPSelter
Ich hab genau das gleiche Problem. Wäre nett, wenn du dich mal melden könnstest zwecks Lösungsaustausch.
-
Habs hinbekommen
Das goldene Tutorial ist dieses hier:http://www.bfowle.com/journal/modules/blog/index.php?post_id=4
Ist alles sehr gut erklärt und befasst sich nur mit dem wichtigsten, nämlich MFC und OpenGL.
-
Hallo JPSelter
Erstmal vielen Dank für den Link. Das Tutorial is klasse und hat mir auch geholfen. Allerdings häng ich noch an einer Ecke fest.
Das Problem bei mir ist, das er mir nach Schritt 16 die Anwendung zwar ohne jegliche Fehlermeldung öffnet, aber nichts zeichnet. Hattest du das Problem auch und wenn ja, weißt du woran es liegt?MfG
Neron
-
Was genau siehst Du denn? Ein schwarzes Canvas? Nur "grau"? In diesem Fall vergiss nicht, das Image Control auf "invisible" zu setzen.
-
Ich seh genau das, was ich auch schon in Schritt 14 hatte. Nen schwarzes Feld in dem Dialogfenster. Ich programmiere unter VC++ 6 und da sind einige Funktionen anders zu erstellen usw. Hab mir einfach mal seinen Sourcecode geladen und ein Projekt draus gemacht und es funktioniert. Ich denke, ich werd das verwenden.
Wär natürlich klasse, falls du trotzdem weißt, woran es liegt. Ich tippe mal auf Probleme bei Perspektive und Zeichnen. Wenn ich die Perspektive orthogonal setze, zeigt eer mir was an, aber es gibt keine Möglichkeit der Mausinteraktion (zumindest keine Reaktion) Hab aber überprüft und festgestellt, dass Mausinteraktion abgefangen wird...
Mit der perspektivischen Ansicht wie gesagt funktionierts eben nicht. Aber du musst dir nicht unnötig Mühe machen, wenn's zeitlich nicht geht. Da die andere Version ja funktioniert sollte es gehen.Vielen Dank dennoch
MfG
Neron
-
Jo, nu siehts schon wieder anders aus. Zwar funktioniert der Code, der im Tutorial zum Download bereitstand, aber sobald man etwas bearbeiten will, ergibt sich ein Fehler. Und zwar findet der Klassenassistent die Klasse "COglMFCDialogDlg" nicht - logisch, die heißt ja auch CoglMFCDialogDlg" (also mit kleinem O). Nu kann ich das aber irgendwie nicht ändern, komm also nich an die Klasse ran und muss das Ganze dann wohl doch selbst programmieren. Bin also für jede Hilfe dankbar.
-
Ich bin's nochmal. Hab jetzt einfach mal mein selbst nachprogrammiertes Projekt gepackt und hochgeladen ... Zip-Datei
Wäre schön, wenn sich mal jemand das ansehen könnte, der sich damit auskennt. Wie schon zuvor erwähnt...das Programm startet, aber zeichnet scheinbar nicht im Sichtbereich. Ich habe statt gluPerspective mal die gluLookAt ausprobiert und auch nen kleinen Teil gesehen. Aber das waren nur paar Linien und nicht der Würfel, der dabei herauskommen sollte.
Ich brauch dieses Framework sehr dringend. Bitte helft mir dabei, das ganze so zu justieren, dass ich damit arbeiten kann.
Vielen Dank
Neron
-
die bedingung
glDepthFunc( GL_EQUAL );
duerfte wohl fuer keinen pixel erfuellt werden...
-
Vielen Dank für die schnelle Antwort. Hab statt GL_EQUAL - GL_LESS eingefügt und nun funktionierts.
Vielen Dank nochmal
Neron