界面如下:
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;
}
右击-》添加自定义类
问题:
CTreeView 不是类名 VS2019怎么添加MFC类
这个错误是VS2019 添加MFC类出错。
VS2017之后,添加MFC类被移到解决方案中添加新建项中,在引导操作中可以设置基类和关联窗口ID,点击完成后即可。
千万不能在类视图中直接添加,直接输入基类,会导致之后的操作出现错误而找不出错因。
正确的添加MFC类步骤:
博客园Logo
首页
新闻
博问
专区
闪存
班级
代码改变世界
搜索
注册
登录
大湾
CTreeView 不是类名 VS2019怎么添加MFC类
这个错误是VS2019 添加MFC类出错。
VS2017之后,添加MFC类被移到解决方案中添加新建项中,在引导操作中可以设置基类和关联窗口ID,点击完成后即可。
千万不能在类视图中直接添加,直接输入基类,会导致之后的操作出现错误而找不出错因。
正确的添加MFC类步骤:
右键----添加-----新建项—MFC—MFC类–名称 输入自己要起的类名 下一步就可以看到 可以选择基类了
不是 右键----添加-----类
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; //自定义拆分
}
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);
}
//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);
详情请参考