MFC_C++03_销售管理系统

01 项目简介以及项目配置

在这里插入图片描述
在这里插入图片描述
界面如下:
在这里插入图片描述
在这里插入图片描述
C499的错误,_CRT_SECURE_NO_WARNINGS

设置窗口属性:
图标:
右击—》在文件资源管理器中打开文件-》将图标放入res中
在这里插入图片描述
添加资源,添加到Icon中(添加图标,更改名称)
在这里插入图片描述
加载图标:(OnCreate中添加代码)
在这里插入图片描述在这里插入图片描述

//修改项目图标
SetClassLong(m_hWnd, GCLP_HICON, (LONG)AfxGetApp()->LoadCursorW(IDI_ICON_WIN));
	
//修改标题,右侧标题
SetTitle(TEXT("2017/5/14"));

在这里插入图片描述
左侧标题更改:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
窗口的大小设置:


	//修改项目图标
	SetClassLong(m_hWnd, GCLP_HICON, (LONG)AfxGetApp()->LoadCursorW(IDI_ICON_WIN));
	
	//修改标题,右侧标题
	SetTitle(TEXT("2022/5/14"));

	//修改窗口大小
	MoveWindow(0, 0, 800, 500);

	//居中显示
	CenterWindow();
	return 0;
}

02 静态拆分窗口

右击-》添加自定义类
问题:
CTreeView 不是类名 VS2019怎么添加MFC类
这个错误是VS2019 添加MFC类出错。

VS2017之后,添加MFC类被移到解决方案中添加新建项中,在引导操作中可以设置基类和关联窗口ID,点击完成后即可。

千万不能在类视图中直接添加,直接输入基类,会导致之后的操作出现错误而找不出错因。
正确的添加MFC类步骤:
博客园Logo
首页
新闻
博问
专区
闪存
班级
代码改变世界
搜索
注册
登录
大湾
CTreeView 不是类名 VS2019怎么添加MFC类
这个错误是VS2019 添加MFC类出错。

VS2017之后,添加MFC类被移到解决方案中添加新建项中,在引导操作中可以设置基类和关联窗口ID,点击完成后即可。

千万不能在类视图中直接添加,直接输入基类,会导致之后的操作出现错误而找不出错因。

正确的添加MFC类步骤:
右键----添加-----新建项—MFC—MFC类–名称 输入自己要起的类名 下一步就可以看到 可以选择基类了
不是 右键----添加-----类
在这里插入图片描述

在这里插入图片描述
添加:#include <afxcview.h>
在这里插入图片描述

通过CSplitterWnd类拆分窗口:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

private:
	CSplitterWnd m_spliter;//切分窗口类对象
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
	// TODO: 在此添加专用代码和/或调用基类

	//创建静态窗口 拆分
	m_spliter.CreateStatic(this, 1, 2);

	//创建具体窗口
	m_spliter.CreateView(0, 0, RUNTIME_CLASS(CSelectView), CSize(200, 500), pContext);
	m_spliter.CreateView(0, 1, RUNTIME_CLASS(CDispalyView), CSize(600, 500), pContext);

	//return CFrameWnd::OnCreateClient(lpcs, pContext);
	return TRUE; //自定义拆分
}

在这里插入图片描述

03 树视图功能实现

在这里插入图片描述
在这里插入图片描述

private:
	CTreeCtrl* m_treeCtrl;//树控件
	CImageList m_imageList; //图标列表

重写:OnInitialUpdate

void CSelectView::OnInitialUpdate()
{
	CTreeView::OnInitialUpdate();

	// TODO: 在此添加专用代码和/或调用基类
	//初始化

	//获取树控件
	m_treeCtrl = &GetTreeCtrl();

	//创建TreeCtrl步骤
	//1.准备图片
	HICON icon = AfxGetApp()->LoadIconW(IDI_ICON_RE);
	m_imageList.Create(30, 30, ILC_COLOR32, 1, 1);
	m_imageList.Add(icon);

	m_treeCtrl->SetImageList(&m_imageList, TVSIL_NORMAL);

	//2.设置节点
	m_treeCtrl->InsertItem(TEXT("个人信息"), 0, 0, NULL);
	m_treeCtrl->InsertItem(TEXT("销售管理"), 0, 0, NULL);
	m_treeCtrl->InsertItem(TEXT("库存信息"), 0, 0, NULL);
	m_treeCtrl->InsertItem(TEXT("库存添加"), 0, 0, NULL);
	m_treeCtrl->InsertItem(TEXT("库存删除"), 0, 0, NULL);
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

04 个人信息界面布局

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

05 个人信息的界面挂载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//WM_USER 是用户自定义消息的一个起始值
//WM_USER+100是为了区分系统消息和用户消息,避免冲突
#define NM_A  (WM_USER+100)
#define NM_B  (WM_USER+101)
#define NM_C  (WM_USER+102)
#define NM_D  (WM_USER+103)
#define NM_E  (WM_USER+104)
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	ON_WM_CREATE()

	//ON_MESSAGE响应的是自定义消息
	//产生NM_X消息,自动调用OnMyChange函数
	ON_MESSAGE(NM_A, OnMyChange)
	ON_MESSAGE(NM_B, OnMyChange)
	ON_MESSAGE(NM_C, OnMyChange)
	ON_MESSAGE(NM_D, OnMyChange)
	ON_MESSAGE(NM_E, OnMyChange)

END_MESSAGE_MAP()
private:
	CSplitterWnd m_spliter;//切分窗口类对象

	afx_msg LRESULT OnMyChange(WPARAM wParam, LPARAM lParam);

	virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);

详情请参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值