2016-08-08 32 views
0

Ich versuche OpenGL4Net Arbeit mit C# in Microsoft Visual Studio 2015 ComunityOpenGL4Net WM_PAINT existiert nicht?

ich diese Datei heruntergeladen haben zu erhalten: https://sourceforge.net/projects/ogl4net/files/Rev.%2037/x64/

und folgte diesen Anweisungen: https://sourceforge.net/p/ogl4net/wiki/Tutorials/

Zuerst mit Eine Konsolenanwendung, die dann aber wieder mit einer Windows Form-Anwendung gestartet wird, da es so aussieht, als ob sie das Fenster von diesem Fenster aus verwenden würde, anstatt es selbst zu erstellen.

Bisher wurden die verschiedenen refrances hinzugefügt wurden, ist form1.cs unberührt und Program.cs sieht wie folgt aus:

using System; 
using System.Collections.Generic; 
//using System.Linq; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using OpenGL4NET; 

namespace pads2 
{ 
    class Program : Form 
    { 
     RenderingContext rc; 

     static void Main(string[] args) 
     { 
      Program program = new Program(); 
      program.Init(); 
      Application.Run(program); 
     } 

     // required for open GL 
     void Init() 
     { 
      rc = RenderingContext.CreateContext(this); 
      SetStyle(ControlStyles.AllPaintingInWmPaint, true); 
     } 

     void Render() 
     { 
      gl.Clear(GL.COLOR_BUFFER_BIT); 

      // here is the right place to draw all your scene 

      rc.SwapBuffers(); 
     } 

     // change window size 
     protected override void OnSizeChanged(EventArgs e) 
     { 
      gl.Viewport(0, 0, ClientSize.Width, ClientSize.Height); 
      // projection matrix may also need adjusting 
     } 

     // required for open GL 
     protected override void WndProc(ref Message m) 
     { 
      switch (m.Msg) 
      { 
       case Windows.WM_PAINT: Render(); break; 
       default: base.WndProc(ref m); break; 
      } 
     } 
    } 
} 

    /* 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 
     } 
    } 
    /* 

Der Compiler über den Kommentar am Ende des Codes unglücklich scheint jedoch die Haupt Problem ist, dass ich den Fehler empfangen:

der Typ oder Namespace-Name ‚WM_PAINT‘ existiert nicht im Namensraum ‚Windows‘ (werden Sie eine Assembly Referenz fehlt?)

ich nicht in der Lage gewesen bin zu finden, was Referenz, die ich für WM_PAINT online benötige, einschließlich eine Referenz für System.Windows hat nicht geholfen.

F: Wie kann ich das lösen und richte ich das richtig ein?

+0

privat const int WM_PAINT = 15; –

+0

wow, danke, das war unerwartet unkompliziert. Willst du antworten oder soll ich? – alan2here

Antwort

0

dieses Problem zuvor hatte das Beispiel vergisst, den Verweis hinzuzufügen, der Fall sein sollte:

case OpenGL4NET.Windows.WM_PAINT: Render(); break; 

(Würde kommentieren, wenn rep mir auch erlaubt)