第4章常用控件内容摘要:
[确定 ]按钮,出现如图所示的消息对话框,显示用户选择的内容。 编辑框的属性和通知消息 用对话框编辑器可以方便地设置编辑框的属性和风格。 编辑框的属性对话框 : 表 编辑框的通知消息 通知消息 说 明 EN_CHANGE 当编辑框中的文本已被修改,在新的文本显示之后发送此消息 EN_HSCROLL 当编辑框的水平滚动条被使用,在更新显示之前发送此消息 EN_KILLFOCUS 编辑框失去键盘输入焦点时发送此消息 EN_MAXTEXT 文本数目到达了限定值时发送此消息 EN_SETFOCUS 编辑框得到键盘输入焦点时发送此消息 EN_UPDATE 编辑框中的文本已被修改,新的文本显示之前发送此消息。 EN_VSCROLL 当编辑框的垂直滚动条被使用,在更新显示之前发送此消息。 编辑框的属性和通知消息 表 编辑框的 Style属性 项 目 说 明 Align text 各行文本对齐方式: Left、 Center、 Right,默认时为 Left Multiline 选中时为多行编辑框,否则为单行编辑框 Number 选中时控件只能输入数字 Horizontal scroll 水平滚动,仅对多行编辑框有效。 Auto HScroll 当用户在行尾键入一个字符时,文本自动向右滚动。 Vertical scroll 垂直滚动,仅对多行编辑框有效 Auto VScroll 当用户在最后一行按 ENTER键时,文本自动向上滚动一页,仅对多行编辑框效 Password 选中时,键入编辑框的字符都将显示为“ *”,仅对单行编辑框有效 No hide selection 通常情况下,当编辑框失去键盘焦点时,被选择的文本仍然反色显示。 选中时, 不具备此功能 OEM convert 选中时,实现对特定字符集的字符转换 Want return 选中时,用户按下 ENTER键,编辑框中就会插入一个回车符 Border 选中时,在控件的周围存在边框 Uppercase 选中时,键入在编辑框的字符全部转换成大写形式 Lowercase 选中时,键入在编辑框的字符全部转换成小写形式 ReadOnly 选中时,防止用户键入或编辑文本 编辑框的基本操作 1. 口令设置 口令设置在编辑框中不同于一般的文本编辑框,每个字符都被一个特殊的字符代替显示,这个特殊的字符称为口令字符。 void SetPasswordChar( TCHAR ch )。 参数 ch表示设定的口 令字符;当 ch = 0时,编辑框内将显示实际字符。 2. 选择文本 当编辑框中编辑文本时,往往需要选定文本作为整体进行各种编辑操作。 用鼠标来选择文本的操作方法是:在要选择的文本的一端按下鼠标左键并拖动鼠标,到另一端释放鼠标键。 用键盘来选择文本的方法是:按光标方向移动键的同时,按住 Shift。 编辑框的基本操作 3. 设置编辑框的页面边距 设置编辑框的页面边距可以使文本在编辑框显示更具满意 效果,这在多行编辑框中尤为重要,应用程序可通过调用 成员函数 CEdit::SetMargins来实现,这个函数的原型如下: oid SetMargins( UINT nLeft, UINT nRight )。 参数 nLeft和 nRight分别用来指定左、右边距的像素大小。 4. 剪帖板操作 编辑框通过 CEdit类的 Copy、 Paste和 Cut成员函数来实现 文本的复制、粘贴、剪切的操作,并还自动支持键盘快捷 操作,其对应的快捷健分别为 Ctrl+C、 Ctrl+V和 Ctrl+X。 若 应用程序调用 CEdit::Undo函数时,则还可撤消当前的操作, 调用一次该函数,则恢复刚才的操作。 例如下面的代码: if (()) ()。 编辑框的基本操作 5. 获取多行编辑框文本 一是使用 DDX/DDV,将编辑框控件所关联的变量类型选 定为 CString 一种是使用编辑框 CEdit类的相关成员函数来获取文本。 如,下面的代码将显示编辑框中第二行的文本内容: char str[100]。 if (()=2) // 判断编辑框的文本是否是两行以上 { int nChar nChars = ((1))。 // 获取第二行文本的字符个数 // 0表示第一行, 1表示第二行,依次类推。 LineIndex用于将文本行转换成 // 能被 LineLength识别的索引 (1,str,nChars)。 // 获取第二行文本 str[nChars] = 39。 \039。 MessageBox(str)。 旋转按钮控件 “旋转按钮控件” 是一对箭头按钮,用户点击它们来增加或减小某个值,比如一个滚动位置或显示在相应控件中的一个数字。 一个旋转按钮控件通常是与一个相伴的控件一起使用的,这个控件称为“伙伴窗口”。 若相伴的控件的 Tab键次序刚好在旋转按钮控件的前面,则这时的旋转按钮控件可以自动定位在它的伙伴窗口的旁边,看起来就象一个单一的控件。 点击向上箭头使当前位置向最大值方向移动,而点击向下箭头使当前位置向最小值的方向移动。 旋转按钮 伙伴窗口 旋转按钮控件的最小值是 100,最大值是 0。 旋转按钮控件 1. 旋转按钮控件常用的风格 (1) 旋转按钮控件有许多风格,它们都可以通过旋转 按钮控件属性对话框进行设置,如图所示,其中各项 的含义见表。 旋转按钮控件 ( 1) 旋转按钮控件的基本操作 MFC的 CSpinButtonCtrl类提供了旋转按钮控件的各种 操作函数 ,使用它们可以进行基数、范围、位置设置和获取 等基本 操作。 int SetBase( int nBase )。 成员函数 SetPos和 SetRange分别用来设置旋转按钮控 件的当前位置和范围,它们的函数原型如下: int SetPos( int nPos )。 void SetRange( int nLower, int nUpper )。 ( 2)成员函数 SetBase 的原型如下: (3) 旋转按钮控件的通知消息 旋转按钮控件的通知消息只有一个: UDN_DELTAPOS, 它是在当控件的当前数值将要改变时向其父窗口发送的。 示例:用对话框输入学生成绩 本例将用到静态文本、编辑框、旋转按钮控件等控件。 实现时,最关键的是如何将编辑框设置成旋转按钮控件的伙伴窗口。 示例:用对话框输入学生成绩 [例 Ex_Ctrl1SDI] 用对话框输入学生成绩 (1) 用 MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_Ctrl1SDI。 (2) 添加一个新的对话框资源,将 ID号改为 IDD_INPUT,标题 为“学生成绩输入”,将对话框字体改为“宋体, 9号”。 将 [OK]和 [Cancel]按钮标题改为“确定”和“取消”。 (3) 调整对话框的大小,将 [确定 ]和 [取消 ]按钮移至对话框的下方,然后显示对话框网格。 示例:用对话框输入学生成绩 (4) 向对话框添加如表所示的控件,调整控件的位置, 结果如图 添加的控件 ID号 标 题 其他属性 编辑框 IDC_EDIT_NAME —— 默认 编辑框 IDC_EDIT_NO —— 默认 编辑框 IDC_EDIT_S1 —— 默认 旋转按钮控件 IDC_SPIN_S1 —— Auto buddy, Right对齐 编辑框 IDC_EDIT_S2 —— 默认 旋转按钮控件 IDC_SPIN_S2 —— Auto buddy, Set buddy integer, Right对齐 编辑框 IDC_EDIT_S3 —— 默认 旋转按钮控件 IDC_SPIN_S3 —— Auto buddy, Set buddy integer, Right对齐 示例:用对话框输入学生成绩 (5) 选择“编排” “ Tab Order”命令,或按快捷键 Ctrl+D,此时每个控件的左上方都有一个数字,表明了当前 Tab键次序,单击对话框中的控件,重新设置控件的 Tab键次序,以保证旋转按钮控件的 Tab键次序在相对应的编辑框 (伙伴窗口 )之后,结果如图所示,单击对话框或按 Enter键结束 Tab Order 方式。 (6) 双击对话框模板空白处,为该对话框模板创建一个对话框类CInputDlg。 示例:用对话框输入学生成绩 2. 完善 CInputDlg类代码 (1)在 MFC ClassWizard的 Member Variables页面中,确定 Class name中是否已选择了 CInputDlg,选中所需的控件 ID号,双击鼠标或单击 Add Variables按钮。 依次为表控件增加成员变量。 控件 ID号 变量类别 变量类型 变量名 范围和大小 IDC_EDIT_NAME Value CString m_strName 20 IDC_EDIT_NO Value CString m_strNO 20 IDC_EDIT_S1 Value float m_fScore1 ~ IDC_SPIN_S1 Control CSpinButtonCtrl m_spinScore1 —— IDC_EDIT_S2 Value float m_fScore2 ~ IDC_SPIN_S2 Control CSpinButtonCtrl m_spinScore2 —— IDC_EDIT_S3 Value float m_fScore3 ~ IDC_SPIN_S3 Control CSpinButtonCtrl m_spinScore3 —— 示例:用对话框输入学生成绩 (2) 在 MFC ClassWizard的 Messsage Maps页面中,为CInputDlg添加 WM_INITDIALOG消息映射,并添加下列代码: BOOL CInputDlg::OnInitDialog() { CDialog::OnInitDialog()。 ( 0, 100 )。 // 设置旋按纽控件范围 ( 0, 100 )。 ( 0, 100 )。 return TRUE。 // return TRUE unless you set the focus to a control } 示例:用对话框输入学生成绩 (3) 用 MFC ClassWizard为 CInputDlg增加 IDC_SPIN_S1 控件的 UDN_DELTAPOS消息映射,并添加下列代码: void CInputDlg::OnDeltaposSpinS1(NMHDR* pNMHDR, LRESULT* pResult) { NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR。 UpdateData(TRUE)。 // 将控件的内容保存到变量中 m_fScore1 += (float)pNMUpDowniDelta *。 if (m_fScore1) m_fScore1 =。 if (m_fScore1) m_fScore1 =。 UpdateData(FALSE)。 // 将变量的内容显示在控件中 *pResult = 0。 } 示例:用对话框输入学生成绩 (1)打开Ex_Ctrl1SDI单文档应用程序的菜单资源,添加顶层菜单 项“测试。第4章常用控件
相关推荐
C。 查表输出 LEA SI,DAVLUE XOR AH,AH ADD SI,AX MOV AL,[SI] MOV DX, DAPORT; DAC端口 OUT DX,AL RET DAOUT ENDP 程序设计举例 ( 三 ) 查表波形发生 (续二 ) 微机系统与接口技术 东南大学 13 程序设计举例 —模 块化: 过程 /子程序调用与参数传递 术语 嵌套 递归 可重入 可重定位 参数传递 1
1223231pxxxx线性无关特征向量为得 由于线性无关特征向量个数为 2≠3, 因此该矩阵不能对角化 . (4)可对角化矩阵的简单应用 (i)由特征值和特征向量反求矩阵 A: A=PΛ P–1 (ii) 求方阵的幂 : Ak=PΛk P–1 例 3 3阶方阵 A有三个不同的特征值 λ1=1,λ2=2, λ3 , 对应的特征向量分别为 ,211,212
Command对象 Command对象的属性 1. ActiveConnection属性 2. CommandText属性 3. CommandType属性 常 量 说 明 AdCmdText 指定 CommandText的类型为 SQL命令 AdCmdTable 指定 CommandText的类型为数据库表的名称 AdCmdStoredProc 指定 CommandText的类型为存储过程名称
采用 线性插值 方法确定 Fun_1 FUNCTION RN2, C4 0, 0/ , , , 1 ( 如果 A为 RN,则特指累计概率分布函数 ) FN$Fun_1 管理系统模拟与 GPSSWorld语言 15 西南交通大学经济管理学院王艺然 2. D型 (离散型) 10 20 30 40 20 P$Px_1 FN$Fun_2 5 Fun_2 FUNCTION P$px_1, D4 5, 10