Programación Específica > OpenGL

 Error Funcion Glutmousefunc

<< < (2/3) > >>

Ruben3d:
Pues no sé de dónde surge el error, ya que:
* a) Nunca he usado el Glut, aunque cuando veo código intuyo cómo va.</li>
* b) Nunca he usado MFC, ni sé cómo va.</li>El error tiene pinta de ser de MFC, y no sé de dónde puede surgir. Te recomiendo que, como manera alternativa, prescindas del GLUT y MFC y lo hagas con el API básica, como se explica en NeHe (http://nehe.gamedev.net/).

Un saludo.

Ruben3d

Perla_kiko:
tu como harias para controlar el mouse en el OPENGL entonces?

Diodo:
Hola  :hola:

Aqui te dejo una clase que implementa una Vista de OpenGl sobre una aplicacion visual c++, viene con algunos comandos de interaccion con el raton

Para implementar la clase en una aplicacion SDI debes hacer lo siguiente:

1) Crear una aplicaion SDI,desactivando en el wizard la opcion Document/View architecture support

2)Una vez creada debes tener 3 clases (el mainframe el app y childview , bueno y tb el dialogo de ayuda)

3)Ahora incluyes los 2 archivos de la clase VistaGL al proyecto y linkas al proyecto las siguientes librerias opengl32.lib y glu32.lib que se supones tendras instaladas en el pc

4)Vas al CChildView.cpp e incluyes la cabecera de VistaGL y cambias la herencia de CCHildView que se hereda de CWnd por VistaGL, algo asi:


--- Código: Text ---  #include &#34;VistaGL.h&#34;class CChildView : public VistaGL{…  
5) Ahora te vas al metodo onpaint de CChildView y le decimos que a la hora de pintar en pantalla recurra al metodo onpaint de vistaGL, de esta forma:


--- Código: Text ---  void CChildView::OnPaint(){CPaintDC dc(this); // device context for painting// TODO: Add your message handler code hereVistaGL::OnPaint(); // &#60;==== ESTA LINEA ES LA QUE DEBES METER// Do not call CWnd::OnPaint() for painting messages}   
6)Una vez hecho esto ya podras pintar usando por ejemplo el metodo pintaescena() de la clase VistaGL o simplemente desde el propio constructor de la clase
Ahora lo que haremos sera permitir a la clase VistaGL controlar los eventos de la clase CChildVies como por ejemplo los eventos de raton
En el siguiente trozo de codigo de CCHildView.cpp debes cambiar Cwnd por VistaGL


--- Código: Text ---  BEGIN_MESSAGE_MAP(CChildView,CWnd ) //&#60;== AQUI cambia CWnd por VistaGL//{{AFX_MSG_MAP(CChildView)ON_WM_PAINT()//}}AFX_MSG_MAPEND_MESSAGE_MAP()   
Y ya esta ¡¡¡ eso es todo

Los metodos implementados para hacer uso del raton son los que proveen las MFC

OnMouseMove(UINT nFlags, CPoint point)
OnLButtonDown(UINT nFlags, CPoint point)

etc etc

buscalos en CChildView.cpp y te haces una idea de como van

Espero que te sea de ayuda ,un saludo  :hola:

Ruben3d:
Bueno, lo que ha puesto Diodo tiene buena pinta. Si a pesar de tener eso quieres saber cómo leer los eventos del ratón con el API básica de Windows, avisa.

Un saludo.

Ruben3d

Perla_kiko:
Si tb me iria bien saber como tratar los eventos del mouse con las api de windows gracias

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa