📖《VC++就业培训宝典之MFC视频教程》
常见编译错误
win32项目
新建项目 win32项目 下一步 完成
#include "stdafx.h"
#include<windows.h>
using namespace std;
int main() {
MessageBox(NULL, L"你好", L"提示", MB_OK);
return 0;
}
error: c++ MessageBox实参形参不兼容
解决办法: 将MessageBox(NULL, "你好", "提示", MB_OK);
改成MessageBox(NULL, L"你好", L"提示", MB_OK);
运行结果:
弹窗MessageBox()
messagebox的图标
MessageBox(NULL, L"hello", L"提示", MB_OK);
加图标
MessageBox(NULL, L"hello", L"提示", MB_OK|MB_ICON...);
- 警告⚠ ICON exclamation
- 错误× HAND
- 问号? QUESTION
- 星号i ASTERISK
/*警告! ICON exclamation或warning*/
MessageBox(NULL, L"hello", L"提示", MB_YESNO | MB_ICONEXCLAMATION);
MessageBox(NULL, L"hello", L"提示", MB_OK | MB_ICONWARNING);
/*错误× HAND或者error又或stop*/
MessageBox(NULL, L"hello", L"提示", MB_OK | MB_ICONHAND);
MessageBox(NULL, L"hello", L"提示", MB_OK | MB_ICONERROR);
MessageBox(NULL, L"hello", L"提示", MB_OK | MB_ICONSTOP);
/*问号? QUESTION*/
MessageBox(NULL, L"hello", L"提示", MB_OK | MB_ICONQUESTION);
/*星号i ASTERISK */
MessageBox(NULL, L"hello", L"提示", MB_OK | MB_ICONASTERISK);
MessageBox按钮的参数和返回值
参数 | 描述 |
---|---|
OK | 消息框包含“确定”按钮 |
OKCancel | 消息框包含“确定”和“取消”按钮 |
YesNo | 消息框包含“是”和“否”按钮 |
YesNoCancel | 消息框包含“是”、“否”和“取消”按钮 |
RetryCancel | 消息框包含“重试”和“取消”按钮 |
AbortRetryIgnore | 消息框包含“中止”、“重试”和“忽略”按钮 |
MessageBox(NULL, L"hello", L"提示", MB_OK);
MessageBox(NULL, L"hello", L"提示", MB_OKCancel);
MessageBox(NULL, L"hello", L"提示", MB_YESNO);
MessageBox(NULL, L"hello", L"提示", MB_YESNOCancel);
MessageBox(NULL, L"hello", L"提示", MB_RetryCancel);
MessageBox(NULL, L"hello", L"提示", MB_AbortRetryIgnore);
返回值 | 描述 |
---|---|
DABORT | 中止按钮被选中 |
IDCANCEL | 取消按钮被选中 |
IDIGNORE | 忽略按钮被选中 |
IDNO | 否按钮被选中 |
IDOK | 确定按钮被选中 |
IDRETRY | 重试按钮被选中 |
IDYES | 是按钮被选中 |
if ((MessageBox(NULL, L"hello", L"提示", MB_OK)) == IDOK){
MessageBox(NULL, L"hi", L"提示", MB_OK | MB_ICONASTERISK);
}
第一个窗口关闭后显示的第二个窗口:
颜色对话框
新建MFC项目
(基于对话框、静态库)
添加控件
控件 | ID | Caption |
---|---|---|
Button | IDC_BUTTON1 | 颜色选择 |
Static Text | IDC_STATIC(默认) | R |
Static Text | IDC_STATIC | G |
Static Text | IDC_STATIC | B |
Static Text | IDC_STATIC | color |
Static Text | IDC_STATIC | B |
Edit Control | IDC_STATIC(默认) | R |
Static Text | IDC_EDIT1 | - |
Static Text | IDC_EDIT2 | - |
Static Text | IDC_EDIT3 | - |
Static Text | IDC_EDIT4 | - |
添加代码
双击按钮,添加代码:
void CMFCApplication6Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
COLORREF color = RGB(255, 0, 0);
CColorDialog colorDlg(color);
if (IDOK == colorDlg.DoModal()) {
color = colorDlg.GetColor();
SetDlgItemInt(IDC_EDIT1, GetRValue(color));
SetDlgItemInt(IDC_EDIT2, GetGValue(color));
SetDlgItemInt(IDC_EDIT3, GetBValue(color));
SetDlgItemInt(IDC_EDIT4, color);
}
}
运行结果
运行结果: