#include <afxwin.h>
#include "resource1.h"
#define TEXTMESSAGE 1025
class MyDialog :public CDialog
{
public:
MyDialog() : CDialog(IDD_DIALOG1)
{
}
//初始化函数
BOOL OnInitDialog()
{
//MFC库全局函数
AfxMessageBox(L"MFC库全局函数");
// //设置对话框标题
// //SetWindowText(L"顿开教育");
// //HICON tb = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON1));
// HICON tb = ::LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDI_ICON1));
// //TURE表示设置大图标还是小图标,FALSE表示设置小图标还是大图标来着
// SetIcon(tb,TRUE);
// SetIcon(tb, FALSE);
// //MFC封装了一个类
// CString str = L"CPDD";
// //SetWindowText(str);
// //cpoint类代表一个点
// CPoint point(4,5);
// //获得当前鼠标坐标
// CPoint dq;
// GetCursorPos(&dq);
// CString str2;
// str2.Format(L"当前鼠标位置X: %d ,Y: %d ",dq.x,dq.y);
SetWindowText(str2);
// //代表一个大小,多宽,多高
// CSize size(800,500);
// //实践类
// CTime time = CTime::GetCurrentTime();
// int year = time.GetYear();
// int month = time.GetMonth();
// int day = time.GetDay();
// int hour = time.GetHour();
// int mintue = time.GetMinute();
// int sec = time.GetSecond();
// CString sj;
// //sj.Format(L"当前时间:%d:%d:%d:%d:%d:%d",year,month,day,hour,mintue,sec);
// sj = time.Format(L"当前时间:%Y:%m:%d:%H:%M:%S");
// //SetWindowText(sj);
// //代表一个矩形区域
// //四个点上下左右
// CRect rect(10,10,10,10);
return TRUE;
}
//声明消息映射
DECLARE_MESSAGE_MAP()
int OnCreate(LPCREATESTRUCT lpcs)
{
SetTimer(1, 1000,NULL);
//SetWindowText(L"OnCreate");
return 1;
}
void OnClose()
{
if (IDYES == MessageBox(L"您确定吗?",L"TIPS",MB_YESNO))
CDialog::OnClose();
else
ShowWindow(SW_MAXIMIZE);
return;
}
void OnDestroy()
{
CDialog::OnDestroy();
}
void OnPaint()
{
CPaintDC dc(this);
dc.Rectangle(0,0,200,200);
CDialog::OnPaint();
}
//void OnTimer(UINT_PTR time)
//{
// switch (time)
// {
// case 1:
// {
// CTime t = CTime::GetCurrentTime();
// CString str = t.Format(L"%Y年%m月%d日%H时%M分%S秒");
// SetWindowText(str);
// }
// break;
// default:
// break;
// }
// //CDialog::OnTimer(time);
//}
void OnSize(UINT nType, int x, int y)
{
CString str;
str.Format(L"长:%d,宽:%d",x,y);
}
void OnOK()
{
CDialog::OnOK();
}
void OnCancel()
{
SendMessage(TEXTMESSAGE);
CDialog::OnCancel();
}
LRESULT MyDialog::OnTestMsg(WPARAM wparam, LPARAM lparam)
{
MessageBox(L"你成功的搞定了自定义消息!!!");
return 0;
}
};
//开始消息映射
BEGIN_MESSAGE_MAP(MyDialog, CDialog)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_WM_DESTROY()
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_SIZE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_DROPFILES()
//按钮的响应
ON_BN_CLICKED(IDOK, &MyDialog::OnOK)
ON_BN_CLICKED(IDCANCEL, &MyDialog::OnCancel)
//实现自定义消息
ON_MESSAGE(TEXTMESSAGE, &MyDialog::OnTestMsg)
//关闭消息映射
END_MESSAGE_MAP()
class MFCFirstApp :public CWinApp
{
public:
//InitInstance 入口函数,MFC的初始化函数
//启动管理,初始化
BOOL InitInstance()
{
//MessageBox(NULL,L"MFC",L"TIPS", NULL);
MyDialog dlg;
dlg.DoModal();
return TRUE;
}
BOOL ExitInstance()
{
return 0;
}
};
MFCFirstApp firstapp;
然后给大家介绍一下如果创建MFC的模态对话框与非模态对话框。
首先介绍模态对话框:大家新建一个对话框资源,一个按钮。
然后右击对话框资源,点击创建类:
然后输入你自己取得类名了啦。
然后双击你拉进来的按钮,会自动创建函数。
然后再stdafx头文件里,导入这个类,然后输入如图代码,就好了!很简单了啦。
然后是非模态
其他步骤一样,就是创建函数不一样。要这样创建!!!
由于是申请内存,所以要删除内存。
这里要注意,非模态的删除需要添加类向导。
然后点击虚函数。输入这个东西。然后点击右侧的添加函数,然后点确定。
然后写上 delete this 就大功告成了。