学习了一段时间的标准C++基础。
发现自己真的白白浪费了大学几年的大好时光。
-----
记录一下自己的第一段MFC HelloWord程序。
真的用心学起来,发现无论是C++还是MFC也并不难,为什么大学几年都没有兴趣来摸一下?后悔中。
1
/*
2
MFC 中创建窗口程序的过程:
3
1:创建一个继承自CWinApp的应用程序类,并创建该类的全局实例。
4
2:创建继承自WFrameWnd的窗口类
5
3: 在窗口类中声明消息处理过程及声明消息映射
6
4: 定义应用程序类,在其入口函数中指定应用程序主窗口。
7
5: 定义窗口类,在其构造函数中创建窗口自身,并创建相关的控件。
8
6: 在消息映射中加入需要处理的事件
9
6: 实现窗口类的消息处理函数
10![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
而通过WINDOWS API创建的过程为:
12
设计一个窗口类;
13
注册窗口类;
14
创建窗口;
15
显示及更新窗口。
16
*/
17
#include <afxwin.h>
18
#define IDB_BUTTON 101 //定义BUTTON的ID
19
//应用程序
20
class CHelloApp:public CWinApp
21
{
22
public:
23
virtual BOOL InitInstance();
24
};
25![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
//将调用CHelloApp的缺省构造函数,而该函数会调用InitInstance函数
27
//InitInstance 是一个应用程序开始执行时要调用的可重载函数。
28
//相当于WinMain
29
CHelloApp helloApp;
30![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
class CHelloWnd:public CFrameWnd
32
{
33
CStatic* cs;
34
CButton* btn;
35
public:
36
CHelloWnd();
37
//消息处理函数
38
//使用afx_msg明确标识为一个消息处理函数
39
//消息处理函数返回值为空,且不能有参数
40
//这是不同于WndProc的
41
afx_msg void HandleButtonClicked();
42
//消息映射
43
DECLARE_MESSAGE_MAP() //注意是没有分号的
44
};
45![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
46
//消息映射
47
BEGIN_MESSAGE_MAP(CHelloWnd,CFrameWnd)
48
ON_BN_CLICKED(IDB_BUTTON,HandleButtonClicked)
49
END_MESSAGE_MAP()
50
//指定应用程序主窗口,也就是注册一个窗口类
51
BOOL CHelloApp::InitInstance()
52
{
53
//m_pMainWnd是一个CWnd*类型变量 ,指向当前应用程序的主窗口对象实例。
54
this->m_pMainWnd=new CHelloWnd();
55
this->m_pMainWnd->ShowWindow(this->m_nCmdShow);
56
this->m_pMainWnd->UpdateWindow();
57
return true;
58
}
59
void CHelloWnd::HandleButtonClicked()
60
{
61
int a=MessageBox(TEXT("你点击了BTN"),TEXT("警告"),4);
62
//cs->MoveWindow(50,20,100,100,true);
63
}
64
CHelloWnd::CHelloWnd()
65
{
66
//六个基本的控件:
67
//CStatic CButton CEdit CScrollBar CComboBox CList
68![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
//CRect(0,0,200,200)
70
//是一个临时的对象,因此,它必须传递给常量引用
71
//而在Create的原型中,可以看到RECT参数定义:const RECT& rect = rectDefault,
72
//归根结底,原因是,生成的临时对象变量是const的
73
Create(NULL,L"Hello World",WS_OVERLAPPEDWINDOW,CRect(10,10,200,200));
74
cs=new CStatic();
75
cs->Create(L"我的第一个MFC",WS_CHILD|WS_VISIBLE|WS_BORDER|SS_RIGHT,CRect(50,50,150,150),this);
76![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
btn=new CButton();
78
btn->Create(TEXT("点击我"),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(50,100,150,150),this,IDB_BUTTON);
79
}
80![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)