清零 3)、示例
void CJisuanqDlg::On1() //用户点击1按钮 {
}
void CJisuanqDlg::On3() //加法按钮,此示例代码只针对只有一个运算//按钮,如果有多个运算按钮,还需要在此函数中通过赋值操作记录下来//是加法按钮被点击了 {
}
6、 输入框对应的数据成员类型为CString类型
可能会用到的CString类成员函数 CString s( \
// TODO: Add your control notification handler code here UpdateData(true); m_a = 0;//输入框清0 UpdateData(false);
// TODO: Add your control notification handler code here UpdateData(true); if(flag == 0) { } else { }
UpdateData(false);
m_a = m_2 * 10 + 1; m_2 = m_a;
m_a = m_1 * 10 + 1;//输入框对应的数据成员 m_1 = m_a;//第一操作数
flag = 1;//开始第二操作数的输入
ASSERT( s.GetLength() == 6 );
CString s( \ASSERT( s.GetAt(2) == 'c' );
CString s( \ASSERT( s[1] == 'b' );
CString str; double num=1.46; //str=\
str.Format(_T(\
CString s1( \CString s2( \
ASSERT( (s1 + s2 ) == \CString s3;
s3 = CString( \
CString s( \
ASSERT( ( s += \
1) CString与int转换
将字符转换为整数,可以使用atoi、_atoi64或atol。
CString aaa = \
int int_chage = atoi((lpcstr)aaa) ;
而将数字转换为CString变量,可以使用CString的Format函数。如
CString s; int i = 64; s.Format(\
7、对于计算器来说,有0-9十个数字按钮,每个按钮对应一个成员函数时,由于这10个成员函数实现代码基本相同,使得整个设计显得特别累赘,能
不能把0-9十个数字按钮映射到一个函数中去?该如何实现 参考答案:利用ON_COMMAND_RANGE。
1)在要添加的工程上添加函数,例如,afx_msg void OnButtonPort(); 2)在
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog) 添加
ON_COMMAND_RANGE(IDC_BUTTON_PORT_1, OnButtonPort)
其中要求0-9个数字按钮id连续,ON_COMMAND_RANGE第一个参数是起始数字按钮id,第二个参数是最后一个数字按钮id,第三个参数是这些数字按钮映射的成员函数
IDC_BUTTON_START_ALL,
//{{AFX_MSG_MAP(CXXXDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_TIMER() //}}AFX_MSG_MAP
END_MESSAGE_MAP()
实验二 简单文本编辑器设计与实现
一、实验目的与要求
实验目的:锻炼可视化编程能力 实验要求:
1熟悉VC++编程环境。
2运用C++程序设计知识对实验题目进行分析和设计。 3进行程序编写和调试工作。 二、实验内容
设计、实现一个与DOS操作系统下的Edit相似的文本编辑器。在此文本编辑器中,用户可以通过快捷和选择菜单项,完成基本的文本编辑器和文件处理工作。文本编辑器主要由五大功能模块构成,它们分别是文件操作模块,文本编辑模块,剪切操作模块,菜单控制模块和帮助及其他模块。各模块的功能要求:
(1)文件操作模块。在文件操作模块中,主要完成文件的创建,打开,保存和另存操作。用户可以选择File菜单上的New子菜单来完成新建文本文件操作;选择File菜单上的Save子菜单来完成保存文件操作选择File菜单上的Open子菜单来完成打开文件操作;选择Flie菜单上的Save as子菜单来完成文件的另存为操作。在文件的打开,保存和另存为操作中,系统会提示用户输入文件路径及文件名。值得一提的是,当用户打开一个文件时,指定的文件必须存在,否则系统会报错。
(2)文本编辑器模块。在文本编辑器模块中,主要完成在编辑窗口中以添加或插入的方式输入字符,删除光标所在当前位置的单个字符或前一个位置的单个字符,朝上下左右4个方向的光标移动操作。当光标所在位置及后面的位置没有字符时,系统会以添加的方式输入字符;当光标所在位置及后面的位置有字符时,系统会已插入的方式输入字符。用户可以使用BackSpace键删除光标前一个字符,也可以使用Del键删除当前位置的字符或删除Ctrl+左移(右移)键i选定了的多个字符。用户可以使用左移键(←),右移键(→),上移键
(↑)和下移键(↓)来移动光标位置。
(3)剪贴板操作模块。在剪贴板操作模块中,主要完成对已选定文本的剪切,复制,粘贴工作。如果用户要剪切文本以便可以将它移动到其他位置,可通过Ctrl+X左移键(右移键)先选定文本,然后选择Edit菜单上的Cut子菜单或按Ctrl+X快捷键来完成剪切任务。如果用户要复制文本以便可以将它黏贴到其他位置,必须先选定文本,然后选择Edit菜单上的Copy紫菜单或按Ctrl+C快捷键来完成复制任务。如果用户要粘贴剪切或复制的文本,必须将光标置于要粘贴文本的位置,然后选择Edit菜单上的Paste子菜单或按Ctrl+V快捷键来完成粘贴任务。
(4)菜单控制模块。在菜单控制模块中,主要完成菜单的显示。光带条在子菜单之间的上下移动或菜单之间的左右移动和子菜单项的选取。本文本编辑器共有Flie,Edit和Help3个子菜单项,用户可以分别按F1,F2和F3功能键来完成这3个菜单项的调用,即显示某项菜单。用户可按光标上移或下移键在某菜单项的子菜单之间循环移动,也可使用光标的左移或右移键在3个菜单项之间循环移动。当光带移动到某个字菜单项上时,用户此时可使用Enter键来选取相关菜单选项。
(5)帮助及其他模块。在帮助及其他模块中,主要完成系统功能及按键的简要介绍。其他模块包括文本的快速预览和窗口的显示。用户可按F10功能键来打开快速预览窗口,在快速预览窗口中没有功能菜单条。主窗口要有菜单栏,文本编辑区和状态栏三大部分构成,菜单栏用来显示菜单项,文本编辑区主要用来文本字符的输入,删除等操作,状态栏主要用来显示当前光标在文本窗口中的坐标值。 三、实现方法
利用VC提供的MFC可视化编程,功能的实现使用的是模块化的编程方式进行,利用相关的系统自带函数实现主要功能。
1、编辑区
编辑器的利用MFC自动生成的文本框,利用的文本编辑函数来实现文本编辑功能。