1.项目创建
当用 win32 创建项目时。想用 mfc 的方式。只要改一个地方。
2.更改入口函数(前提是你自己会处理执行在main 函数之前的那些函数)
3.创建 mfc 时一般是基于对话框
4.默认的生成宏说明。
//这里是生成的类型对应的是IDD_MFCAPPLICATION1_DIALOG资源 id
CMFCApplication1Dlg::CMFCApplication1Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_MFCAPPLICATION1_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
//这个宏表示绑定资源
void CMFCApplication1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
//这些宏对应事件 相应事件在这个绑定
BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
END_MESSAGE_MAP()
//对话框初始化函数在一般在这里做相应的初始化
BOOL CMFCApplication1Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
5.工具箱
6.查看代码
7.资源视图(查看资源 id 等)
8.视图
9.控件的使用
10.控件的属性
11.控件的响应事件
12.添加到父窗口这里要注意的是目前还没有绑定控件只是添加的事件点击没用
只绑定了事件(如果只想要事件这就可以了)
13.绑定控件
钩控件变量 id 要选对
这里就是真的绑定了同时把控件自动给你初始化(这里可以理解成控件初始化)
void CMFCApplication1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON1, mybtn);
}
如果要想把控件也生成类也可以 这里右击控件不要用添加类因为继承类不完整
用类向导 不要搞错了是 mfc 类
选择基类 点击一
生成类
这里就有个坑 由于你的父窗口已经添加把这个控件添加成变量了。同时你现在又把控件生成类所以要手动改下
包含头文件
改变量名
这里一定要记得是哪个控件生成类因为 mfc 很乱不添加完后不知道是哪个控件添加了类 一般命名来区分 这里就可以自己添加控件的其它方法了
有的控件就不能这样添加只能代码写
像这些就只能自己加了
http://blog.51cto.com/haidragon/2087840
1. 新建
2. 在想要添加这个控件的类里包含对应的控件头文件
3. 声名一个变量
4. 父窗口在初始化函数初始化控件
用 create(this)等
5.同时要加上对应的显示函数 如:toolbar
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
控件的使用记住:
1.显示不是自己想要的 查看属性改相应的属性
2.不同控件在 mfc 中有固定用法 像radio 就比较low
3.不同控件初始化不同像toolbar 最后还要来一句神一样的操作
4.查看 id 有没有 mfc 非常蛋疼的一个地方是有时没帮你添加id 在资源文件里也没有。
5.查看 id 是不是重复 这不得不说 mfc 神一样的操作。
6.查看 id 是不是默认生成的 id 有可能这个 id 被用了 像图片 id mfc 项目已经有那个 id。但是 mfc 还是默认生成那个 id。
7.检查俩种重要宏
8.不要出现在控件的构造函数里调控件。因为都没有初始化 this 是 null 像 this->...会出错。
9.没有调用控件里自己实现的函数。有可能是控件生成类时没有在父窗口中改过来。而是用的默认的。
原文地址:http://blog.51cto.com/haidragon/2088960