1.
1 //{{AFX_DATA(CScoreDlg)
2 enum { IDD = IDD_DIALOG1 };
3 int m_score1;
4 int m_score2;
5 //}}AFX_DATA
在AFX_DATA(CScoreDlg)与AFX_DATA之间定义的部分是用classwizard创建的成员变量。注意:所有classwizard产生的灰色显示的代码,不应在文件中直接修改,而因在classwizard工具中进行修改,不然容易引起错误。
2.
对话框分为模式对话框和无模式对话框,当一个模式对话框打开后,在其关闭之前,用户不能转向其他用户界面对象,而只能与该对话框进行交互。无模式对话框则可以。
3.
通用对话框
MFC类 | 名称 | 类型 |
CColorDialog | 颜色对话框 | 模式 |
CFileDialog | 文件对话框 | 模式 |
CFindReplaceDialog | 查找/替换对话框 | 无模式 |
CFontDialog | 字体对话框 | 模式 |
CPrintDialog | 打印对话框 | 模式 |
CPageSetupDialog | 页面设置对话框 | 模式 |
4.
当程序需要交换数据时,应该调用CWnd::UpdateData()函数,UpdateData()函数内部调用了DoDataExchange函数。UpdateData()函数只有一个BOOL类型的参数:
UpdateData(false):将对话框对象的数据成员变量的值复制到对话框中的相应控件。
UpdateData(true):将对话框控件的值复制到对话框对象的相应数据成员变量。
5.
5.1 CreateWindow()或CreateEx()
在程序运行过程中,可以通过调用创建窗口的函数动态地来创建控件,创建窗口的函数式CreateWindow()或CreateEx().
5.2 ShowWindow()
使用函数ShowWindow()可以显示或隐藏控件。它的函数原型为
BOOL ShowWindow(int nCmdShow);
参数nCmdShow表示窗口的显示特性,例如,取值SW_HIDE表示隐藏控件,取值SW_SHOW表示显示控件。
5.3 EnableWindow()
通过函数EnableWindow()可以激活控件或禁止控件接受用户输入。它的函数原型为
BOOL EnableWindow( BOOL nEnable = TRUE );
参数nEnable决定控件的激活或禁止状态,当值为true时,允许控件接受用户输入,当值为false时,不允许控件接受用户输入,其呈灰色显示。
5.4 MoveWindow()
通过函数MoveWindow()可以移动控件或改变控件的大小。函数原型为:
void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
坐标x,y决定控件所在的位置,nWidth和nHeight决定控件的大小,bRepaint表明对话框窗口移动后,控件是否需要重画,以使其与对话框窗口的相对位置与大小保持不变。
5.5 DestroyWindow()
通过该函数能够关闭一个控件,该函数的原型为
void DestroyWindow()
6.
编辑控件的消息类别
消息类别 | 发生事件 |
EN_CHANGE | 输入框中的文本串被修改 |
EN_ERRSPACE | 输入的文本串超过了输入框的显示范围 |
EN_HSCROLL | 按下水平滚动条 |
EN_KILLFOCUS | 输入框失去焦点 |
EN_MAXTEXT | 输入的文本串超过了设定的最大输入长度 |
EN_SETFOCUS | 输入框获取焦点 |
EN_UPDATE | 更新显示内容 |
EN_VSCROLL | 按下垂直滚动条 |
7.
通用CEdit类的方法
方法 | 说明 |
CanUndo() | 决定一个编辑操作是否可以撤销 |
Clear() | 从编辑控件中删除当前的选中内容(如果有的话) |
Copy() |
将编辑控件当前的选中内容(如果有的话)以CF_TEXT格式复制到剪贴板上 |
Cut() | 剪下编辑控件中的当前选中内容(如果有的话)并以CF_TEXT格式复制到剪贴板上 |
EmptyUndoBuffer() | 清除一个编辑控件的撤消操作缓冲器 |
GetFirstVisibleLine() | 确定编辑控件中最上面的可视行 |
GetModify() | 确定一个编辑控件的内容是否可修改 |
GetPasswordChar | 当用户输入文本时,获得编辑控件中显示的密码字符 |
GetRect() | 获得一个编辑控件的格式化矩形 |
GetSel() | 获得编辑控件中当前选中内容的开始和结束字符位置 |
LimitText() | 限定用户可以输入编辑控件的文本长度 |
LineFromChar() | 获得包含指定字符下标的行的长度 |
LineLength() | 获得一个编辑控件中的一行文本的长度 |
LineScroll() | 滚动多行编辑控件的文本 |
Paste() |
将剪贴板上的数据插入到编辑控件中当前的光标位置,只有当剪贴板上的数据格式 为CF_TEXT时方可插入 |
ReplaceSel() | 用指定文本替代编辑控件中当前选中内容的部分 |
SetModify() | 设置或清除编辑控件的修改标志 |
SetPasswordChar() | 当用户输入密码文本时设置或删除一个显示于编辑控件中的密码字符 |
SetReadOnly() | 将编辑控件设置为只读状态 |
SetSel() | 在编辑控件中选定内容字符的范围 |
Undo() |
编辑控件撤消最后一项操作 |
8.
MFC ODBC类
8.1 CDatabase类的主要功能是建立与ODBC数据源的连接,要建立于数据源的连接,首先创建一个CDatabase对象,再调用CDatabase类的open()函数创建连接。Open()函数的原型定义如下:
virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”, BOOL bUseCursorLib = TRUE );
lpszDSN指定数据源名,若lpszDSN的值为NULL,则程序执行时会弹出数据源对话框,供用户选择一个数据源。
lpszConnect指定一个连接字符串,连接字符串中通常包括数据源名、用户名ID、口令等信息,与特定的DBMS相关。
例如,
CDatabase db;
db.open(NULL,FALSE,FALSE,"ODBC;DSN=HotelInfo;UID=SYSTEM;PWD=123456");
要断开与一个数据源的连接,可以调用CDatabase类的成员函数Close()。
8.2 CRecordset类对象表示从数据源中抽取出来的一组记录集。CRecordset类封装了大量操作数据库的函数,支持查询、存取、更新等数据库操作。
记录集主要分为2种:快照和动态记录集。