Visual C++ MFC 简明教程(1)
2007-03-18 21:28:02 来源:WEB开发网在比较低级的编程方法中,如用C直接编写Windows API应用程序,代码量是非常大的,因为你所要照顾的细节太多了。例如,你用某种类型的结构来接收单击鼠标事件。你的事件循环中的代码会查看结构中不同域,以确定哪个用户界面对象受到了影响,然后会完成相应的操作。当屏幕上有很多对象时,应用程序会变得很大。只是简单地处理哪个对象被单击和对它需要做些什么要花费大量的代码。
幸运的是,你可以在比较高级的方法来进行编程,这就是使用MFC。在MFC中,几乎所有的低级的细节处理都为你代办了。如果你把某一用户界面对象放在屏幕上,你只需要两行代码来建立它。如果用户单击一个按钮,则按钮自己会完成一切必要的操作,从更新屏幕上的外观到调用你程序中的预处理函数。该函数包含有对该按钮作出相应操作的代码。MFC 为你处理所有的细节:你建立按钮并告知它特定的处理函数,则当它被按下时,它就会调用相应的函数。第四部分介绍了怎样使用消息映射来处理事件。
例子
理解一个典型的 MFC 程序的结构和样式的最好方法是输入一段小程序,然后编译和运行它。下面的程序是一段简单的“hello world”程序。这对很多C程序员都是很熟悉了,让我们看一下如何用MFC方法来实现。如果你是第一次看到这类程序,也许比较难理解。这没关系,我们后面会详细介绍。现在你只要用Visual C++ 环境中建立、编译和运行它就可以了。
//hello.cpp
#include
// 说明应用程序类
class CHelloApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
// 建立应用程序类的实例
CHelloApp HelloApp;
// 说明主窗口类
class CHelloWindow : public CFrameWnd
{
CStatic* cs;
public:
CHelloWindow();
};
// 每当应用程序首次执行时都要调用的初始化函数
BOOL CHelloApp::InitInstance()
{
m_pMainWnd = new CHelloWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
// 窗口类的构造函数
CHelloWindow::CHelloWindow()
{
// 建立窗口本身
Create(NULL,
"Hello World!",
WS_OVERLAPPEDWINDOW,
CRect(0,0,200,200));
// 建立静态标签
cs = new CStatic();
cs->Create("hello world",
WS_CHILD|WS_VISIBLE|SS_CENTER,
CRect(50,80,150,150),
this);
}
上面的这段程序如果用C来实现,得需要几页的代码。这个简单的例子做了三件事。第一,它建立了一个应用程序对象。你所编写的每个 MFC 程序都有一个单一的程序对象,它是处理 MFC 和 Windows 的初始细节的。第二,应用程序建立了一个窗口来作为应用程序的主窗口。最后,在应用程序的窗口中建立了一个静态文本标签,它包含有“hello world”几个字。在第二部分中我们会仔细研究这段程序,以理解其结构。
- ››Visual Basic 2008 数学函数
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››MFC中有多个slider时OnHScroll函数判断方法
- ››MFC自绘按钮
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
- ››Visual C#两分钟搭建BHO IE钩子
- ››Visual C++优化对大型数据集合的并发访问
- ››VISUAL C++中的OCX控件的使用方法
更多精彩
赞助商链接