Visual Studio2013怎么创建MFC窗体
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio2013怎么创建MFC窗体相关的知识,希望对你有一定的参考价值。
对于使用新版vs2013的朋友们来说这方面的资料着实少,下面介绍下最基本的用vs2013创建一个熟知的标准MFC窗体。
方法/步骤
启动程序后,选择“文件>新建”菜单。
如图所示依次展开左边“已安装>模版>其他语言>Visual C++>MFC”,确认好文件保存路径和项目名后,就可以点击确定了。
点击确定后,会弹出MFC的程序向导,依旧选择下一步。
设置方式如图中所示,设置完成后,就可以点击下一步了。
数据库支持无,继续点击下一步。
如图中所示,选择后,继续下一步。
这里默认,继续下一步。
这里可以更改类名,默认,点击完成即可。
完成之后,在“资源视图”,依次展开,双击后,就会看到窗体了。
”资源试图“,默认是关闭的,在这里可以显示出来。点击菜单栏上的“视图>其他窗口>资源视图”就可以了。
启动刚刚建立的MFC工程,正常启动后,那么MFC窗体就建立完成了。
选择新建项目后,在新建项目对话框中选择 模块-》Visual C++-》MFC-》MFC应用程序,并确定好存放路径和项目名称,点击“确定”。
进入应用程序向导,一开始会给出默认的项目配置,点击“下一步”即可。
选择“基于对话框”,MFC可以选择在静态库中使用,或者在共享DLL中使用。一般选择共享使用就行,静态库中使用会把所有用到的dll集成到exe文件中,最终生成的文件一般可以直接使用,但占用更大空间。
选择主框架样式,可以自由选择是否添加最小化框、最大化框。如果觉得没必要“关于”对话框也可以去掉,对话框标题一般不需要更改。
高级功能一般默认即可,但如果用不上“ActiveX控件”可以去掉勾选;如果需要涉及网络编程就把“windows 套接字”选上。不过没选上也不要紧,在程序中可以自己添加部分代码导入套接字。
最后是自动生成的两个类的头文件和源文件名称,可以修改基类,但一般不用改,默认完成就行。至此,一个基于对话框的MFC项目就创建好了。 参考技术B 直接新建一个MFC工程就可以了啊,
http://jingyan.baidu.com/article/84b4f565ca09f960f6da3221.html
为啥最小 MFC 项目在 Visual Studio 2013 上存在链接错误?
【中文标题】为啥最小 MFC 项目在 Visual Studio 2013 上存在链接错误?【英文标题】:Why a minimum MFC project has linking error on Visual Studio 2013?为什么最小 MFC 项目在 Visual Studio 2013 上存在链接错误? 【发布时间】:2013-11-17 11:41:29 【问题描述】:我创建了一个 Win32 控制台应用程序来编写一个简单的 MFC 项目。
源码如下:
#include <afxwin.h>
class MyApp : public CWinApp
public:
BOOL InitInstance();
MyApp()
;
class MainWindow : public CFrameWnd
protected:
int OnCreate(LPCREATESTRUCT lpCreateStruct);
void OnClose();
LRESULT OnTimer(WPARAM wParam, LPARAM lParam);
// This line is causing the error
DECLARE_MESSAGE_MAP()
;
BOOL MyApp::InitInstance()
MainWindow* mainWindow = new MainWindow();
m_pMainWnd = mainWindow;
mainWindow->Create(NULL, L"Main Window");
mainWindow->ShowWindow(m_nCmdShow);
return TRUE;
MyApp myApp;
int MainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)
SetTimer(1, 2000, NULL);
return 0;
void MainWindow::OnClose()
if (MessageBox(L"Close?", L"Close", MB_YESNO | MB_ICONQUESTION) == IDYES)
KillTimer(1);
CFrameWnd::OnClose();
LRESULT MainWindow::OnTimer(WPARAM wParam, LPARAM lParam)
MessageBeep(MB_ICONQUESTION);
return 0;
当我尝试编译时,出现以下错误:
错误 1 错误 LNK2001:未解析的外部符号“受保护:虚拟结构 AFX_MSGMAP const * __thiscall MainWindow::GetMessageMap(void)const” (?GetMessageMap@MainWindow@@MBEPBUAFX_MSGMAP@@XZ) D:\Projects\MinimumMFC\MinimumMFC\最小MFC.obj 最小MFC
【问题讨论】:
在使用 MFC 创建对话框应用程序时,您是否可以选择: 1. 在共享 DLL 中使用 MFC? 这看起来不像一个 Win32 控制台 应用程序。考虑编辑您的问题以匹配您的问题。 【参考方案1】:我忘了在 MainWindow 声明之后声明 BEGIN_MESSAGE_MAP:
BEGIN_MESSAGE_MAP(MainWindow, CFrameWnd)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_MESSAGE(WM_TIMER, OnTimer)
END_MESSAGE_MAP()
完整的源代码应该是:
#include <afxwin.h>
class MyApp : public CWinApp
public:
BOOL InitInstance();
MyApp()
;
class MainWindow : public CFrameWnd
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnClose();
afx_msg LRESULT OnTimer(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
;
BEGIN_MESSAGE_MAP(MainWindow, CFrameWnd)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_MESSAGE(WM_TIMER, OnTimer)
END_MESSAGE_MAP()
BOOL MyApp::InitInstance()
MainWindow* mainWindow = new MainWindow();
m_pMainWnd = mainWindow;
mainWindow->Create(NULL, L"Main Window");
mainWindow->ShowWindow(m_nCmdShow);
return TRUE;
MyApp myApp;
int MainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)
SetTimer(1, 2000, NULL);
return 0;
void MainWindow::OnClose()
if (MessageBox(L"Close?", L"Close", MB_YESNO | MB_ICONQUESTION) == IDYES)
KillTimer(1);
CFrameWnd::OnClose();
LRESULT MainWindow::OnTimer(WPARAM wParam, LPARAM lParam)
MessageBeep(MB_ICONQUESTION);
return 0;
【讨论】:
以上是关于Visual Studio2013怎么创建MFC窗体的主要内容,如果未能解决你的问题,请参考以下文章
用Microsoft Visual Studio 2019写MFC程序(Bresenham画直线为例)
MS Visual Studio 2013 MFC 应用程序:为消息/输出服务创建文本框
为啥最小 MFC 项目在 Visual Studio 2013 上存在链接错误?
错误无法在 Visual Studio 社区 2013 中打开文件“mfc80u.lib”