使用visual studio 2019 创建过程请参考Bili的上一篇文章⬇⬇
→!使用visual studio 2019 创建简单的MFC窗口「使用底层的C语言」
划重点:项目->属性->常规->高级->将MFC的使用设置为在“共享dll中使用mfc”
学的不仅仅是技术,更是梦想
头文件mfc.h #include <afxwin.h> //mfc头文件 class MyApp:public CWinApp{ public: virtual BOOL InitInstance(); }; class MyFrame :public CFrameWnd { //窗口框架类 public: MyFrame(); //声明宏 提示消息映射机制 DECLARE_MESSAGE_MAP(); afx_msg void OnLButtonDown(UINT,CPoint); afx_msg void OnChar(UINT,UINT,UINT); afx_msg void OnPaint(); };
学的不仅仅是技术,更是梦想
源文件mfc.cpp #include "mfc.h" MyApp app; BOOL MyApp::InitInstance() { //创建窗口 MyFrame* frame = new MyFrame; //显示和更新 frame->ShowWindow(SW_SHOWNORMAL); frame->UpdateWindow(); m_pMainWnd = frame; //保存指向应用程序的主窗口的指针 return TRUE; //返回正常初始化 } //分界宏 BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd) ON_WM_LBUTTONDOWN() //鼠标左键按下 ON_WM_CHAR() ON_WM_PAINT() END_MESSAGE_MAP() MyFrame::MyFrame() { Create(NULL,TEXT("windows")); } void MyFrame::OnLButtonDown(UINT, CPoint point) { //TCHAR buf[1024]; //wsprintf(buf, TEXT("x = %d,y = %d"), point.x, point.y); //MessageBox(buf); CString str; str.Format(TEXT("x = %d,y = %d"),point.x,point.y); MessageBox(str); } void MyFrame::OnChar(UINT key, UINT, UINT) { CString str; str.Format(TEXT("按下了%c键"),key); MessageBox(str); } void MyFrame::OnPaint() { CPaintDC dc(this); dc.TextOutW(100,100,TEXT("为了部落")); dc.Ellipse(10,10,100,100); }