Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef MFCWindow_INCLUDE_ONCE
00033 #define MFCWindow_INCLUDE_ONCE
00034
00035 #include <vlMFC/link_config.hpp>
00036 #include <vlGraphics/OpenGLContext.hpp>
00037 #include <vlWin32/Win32Context.hpp>
00038
00039 namespace vlMFC
00040 {
00041
00042
00043
00047 class VLMFC_EXPORT MFCWindow: public CWnd, public vlWin32::Win32Context
00048 {
00049 public:
00050 MFCWindow() { vl::OpenGLContext::setAutomaticDelete(false); }
00051
00052 virtual ~MFCWindow();
00053
00055 bool initMFCWindow(CWnd* parent, MFCWindow* share_context, const vl::String& title, const vl::OpenGLContextFormat& fmt, int x=0, int y=0, int width=640, int height=480);
00056
00058 HWND hwnd() const { return m_hWnd; }
00059
00060 public:
00061
00062
00063
00064 afx_msg void OnPaint();
00065
00066 afx_msg void OnDestroy();
00067 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
00068 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
00069 afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
00070 afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
00071 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
00072 afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
00073 afx_msg void OnMButtonDblClk(UINT nFlags, CPoint point);
00074 afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
00075 afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
00076 afx_msg void OnMouseMove(UINT nFlags, CPoint point);
00077 afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
00078 afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
00079 afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
00080 afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
00081 afx_msg void OnSize(UINT nType, int cx, int cy);
00082
00083 afx_msg void OnDropFiles(HDROP hDropInfo);
00084
00085
00086 protected:
00087 void destroyGLContext();
00088 void countAndCapture();
00089 void countAndRelease();
00090
00091 protected:
00092 int mMouseDownCount;
00093 static CString mClassName;
00094
00095 DECLARE_MESSAGE_MAP()
00096 };
00097 }
00098
00099 #endif