MFC编程之简单的窗口设计相关的方法
/************************************************************************************
* 本文为作者原创,转载请注明出处,未经本人允许请勿用于商业用途!
* Author:于海平
* 邮箱:linux_fish@126.com
* 本文链接:http://blog.csdn.net/drivelinux/article/details/8512925
*************************************************************************************/
一、消息提示框
1.AfxMessageBox()
int AfxMessageBox(
LPCTSTR lpszText, //提示信息字符串的指针
UINT nType = MB_OK, //MessageBox的类型
UINT nIDHelp = 0 //帮助文本的ID,0为采用默认的帮助文本
);
2.MessageBox()
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL, //MessageBox的标题
UINT nType = MB_OK
);
这两个函数的功能基本相同。但是AfxMessageBox()为全局的函数,可在任意位置调用。MessageBox()只能在基类是CWnd的类里面直接调用。
其中,nType参数的取值如下:
A.MessageBox的类型设置
•MB_ABORTRETRYIGNORE 包含三个按钮:Abort, Retry, and Ignore.
•MB_OK 包含一个按钮: OK.
•MB_OKCANCEL 包含两个按钮: OK and Cancel.
•MB_RETRYCANCEL 包含两个按钮: Retry and Cancel.
•MB_YESNO 包含两个按钮: Yes and No.
•MB_YESNOCANCEL 包含三个按钮: Yes, No, and Cancel.
B.MessageBox的模式设置
•MB_APPLMODAL 应用模态
•MB_SYSTEMMODAL 系统模态
•MB_TASKMODAL 任务模态
C.MessageBox的图标设置
•MB_ICONEXCLAMATION An exclamation-point icon appears in the message box.
•MB_ICONINFORMATION An icon consisting of an i in a circle appears in the message box.
•MB_ICONQUESTION A question-mark icon appears in the message box.
•MB_ICONSTOP A stop-sign icon appears in the message box.
D.缺省的按钮
•MB_DEFBUTTON1
•MB_DEFBUTTON2
•MB_DEFBUTTON3
使用实例如下:
AfxMessageBox("账号不能为空");
MessageBox("密码不能为空","提示",MB_YESNO|MB_ICONSTOP);
二、CString类的使用
1.定义和赋值
CString txt = _T("Hello");
txt += _T(" Kitty");
2.常用方法
A.CString::Format()
txt.Format("%s%d","The result is ",-1);
MessageBox(txt,"提示",MB_YESNO|MB_ICONSTOP);
B.CString::IsEmpty()
该方法用于判断一个CString对象是否为空。
3.字符串比较
可以直接用‘==’将CString对象和字符串进行比较。
三、窗口函数
1.UpdateData()
BOOL UpdateData(
BOOL bSaveAndValidate = TRUE
);
该函数用于刷新数据。UpdateData(TRUE)表示刷新控件的值到对应的变量中,UpdateData(FALSE)表示刷新变量的值到对应的控件中。
四、CDialog::OnOk()和CDialog::OnCancel()
1.CDialog::OnOk()
该函数实现的功能是首先调用UpdateData(TRUE)刷新控件中的数据到对应的变量中,并调用EndDialo()关闭当前对话框。
2.CDialog::OnCancel()
该函数实现的功能是调用EndDialo()关闭当前对话框。
五、按一个按钮退出当前窗口并打开新窗口的实现
this->ShowWindow(SW_HIDE);
MainWindow mw;
mw.DoModal();
CDialog::OnOK();
六、更换程序图标的方法
在Resource View模式下,删除图标对应的ID,也就是删除当前的图标。然后,选择Insert->Resource->Icon->Import,并导入自己的图标即可。然后重新编译工程,应用程序程序的图标就是设定的图标了。导入的图标可以为16x16或者32x32大小的(这两种是我试过的)。