标签:
#include <SDKDDKVer.h> #include <afxwin.h> #include <afxext.h> #include <iostream> #include <sstream> class MyFrameWnd : public CFrameWnd { public: MyFrameWnd() :CFrameWnd() { Create(0, TEXT("Hello")); m_Menu.CreateMenu(); m_Menu.AppendMenu(MF_STRING, 0, _T("文件")); SetMenu(&m_Menu); } protected: void OnPaint() { CPaintDC dc(this); dc.MoveTo(0, 0); dc.LineTo(200, 200); } void OnLButtonDown(UINT flag, CPoint point) { std::stringstream ss; ss << point.x << "," << point.y << "\n"; ::OutputDebugStringA(ss.str().c_str()); } static const AFX_MSGMAP* PASCAL GetThisMessageMap() { typedef MyFrameWnd ThisClass; typedef CFrameWnd TheBaseClass; static const AFX_MSGMAP_ENTRY _messageEntries[] = { { WM_PAINT, 0, 0, 0, AfxSig_vv, (AFX_PMSG)(AFX_PMSGW)(static_cast< void (AFX_MSG_CALL CWnd::*)(void) > ( &ThisClass :: OnPaint)) }, { WM_LBUTTONDOWN, 0, 0, 0, AfxSig_vwp, (AFX_PMSG)(AFX_PMSGW)(static_cast< void (AFX_MSG_CALL CWnd::*)(UINT, CPoint) > (&ThisClass :: OnLButtonDown)) }, {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } }; static const AFX_MSGMAP messageMap = { &TheBaseClass::GetThisMessageMap, &_messageEntries[0] }; return &messageMap; } virtual const AFX_MSGMAP* GetMessageMap() const { return GetThisMessageMap(); } private: CMenu m_Menu; }; class MyApp : public CWinApp { public: MyApp() :CWinApp() { } ~MyApp() { } BOOL InitInstance() { CWinApp::InitInstance(); MyFrameWnd * frame = new MyFrameWnd; m_pMainWnd = frame; m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return true; } }; MyApp theApp;
标签:
原文地址:http://www.cnblogs.com/nmgxbc/p/5873887.html