当前位置: 首页 > news >正文

【上位机——MFC】视图

相关类

CView及其子类,父类为CWnd类,封装了关于视图窗口的各种操作,以及和文档类的数据交互。

视图窗口的使用

1.定义一个自己的视图类(CMyView),派生自CView,并重写父类成员纯虚函数OnDraw。
2.其余框架类和应用程序类代码不变(可以参考前面的文章)
3.在处理框架窗口的WM_CREATE消息时,定义CMyView类对象,并调用Create函数创建视图窗口。

代码示例


#include <afxwin.h>
#include "resource.h"class CMyView : public CView {public:void OnDraw(CDC* pDC);DECLARE_MESSAGE_MAP()afx_msg void OnNew();
};//如果想要使用OnDraw方法的话,将ON_WM_PAINT()注释掉
void CMyView::OnDraw(CDC* pDC) {pDC->TextOut(100, 100, _T("CMyView::OnDraw()"));
}class CMyFrameWnd :public CFrameWnd {DECLARE_MESSAGE_MAP()
public:afx_msg int OnCreate(LPCREATESTRUCT pcs);
};BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)ON_WM_CREATE()
END_MESSAGE_MAP()int CMyFrameWnd::OnCreate(LPCREATESTRUCT pcs) {CMyView* pView = new CMyView;// AFX_IDW_PANE_FIRST : 将视图窗口平铺到框架窗口pView->Create(NULL, _T("MFCView"), WS_CHILD | WS_VISIBLE | WS_BORDER, CRect(0, 0, 200, 200), this, AFX_IDW_PANE_FIRST);//加上这行代码之后默认就会将视图激活,表示CMyView中的OnNew函数生效m_pViewActive = pView;return CFrameWnd::OnCreate(pcs);
}class CMyWinApp : public CWinApp {
public:virtual BOOL InitInstance();
};BOOL CMyWinApp::InitInstance() {CMyFrameWnd* pFrame = new CMyFrameWnd;pFrame->Create(NULL, "MFCView", WS_OVERLAPPEDWINDOW, CFrameWnd::rectDefault, NULL, (CHAR*)IDR_MENU1);m_pMainWnd = pFrame;pFrame->ShowWindow(SW_SHOW);pFrame->UpdateWindow();return TRUE;
}CMyWinApp theApp; BEGIN_MESSAGE_MAP(CMyView, CView)
ON_COMMAND(ID_NEW, &CMyView::OnNew)
END_MESSAGE_MAP()void CMyView::OnNew()
{AfxMessageBox("ON_NEW");
}

相关文章:

  • 贪吃蛇游戏demo
  • 重塑编程体验边界:明基RD280U显示器深度体验
  • Git和Gitlab的部署和操作
  • 小球在摆线上下落的物理过程MATLAB代码
  • Kotlin中的also、apply、invoke用法详解
  • 【音视频】SDL事件
  • 操作系统:计算机世界的基石与演进
  • 内耗型选手如何能做到不内耗?
  • 力扣4-最长公共前缀
  • 每天五分钟深度学习框架pytorch:使用visdom绘制损失函数图像
  • LCD1602液晶显示屏详解(STM32)
  • 误触网络重置,笔记本电脑wifi连接不上解决方法(Win10,Win11通用)
  • react slot传递
  • django filter 日期大于当前日期的
  • 游戏引擎学习第247天:简化DEBUG_VALUE
  • 游戏引擎学习第248天:清理数据块显示
  • HQChart k线图配置
  • (七)RestAPI 毛子(Http 缓存/乐观锁/Polly/Rate limiting)
  • MIT XV6 - 1.1 Lab: Xv6 and Unix utilities - sleep
  • springboot不连接数据库启动(原先连接了mysql数据库)
  • 黄永年:说狄仁杰的奏毁淫祠
  • 马上评丨学生举报食堂饭菜有蛆,教育局应该护谁的犊子
  • 深一度|“凑合过”的利物浦,英超第二冠只求性价比
  • 四川落马厅官周海琦受审,1000余人接受警示教育
  • 凝聚多方力量,中国农科院油菜产业专家团部署单产提升新任务
  • 首映|《人生开门红》:段子背后都是案子