第5章 文本与字体 2018/12/4 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/4 Huang Weitong.

Slides:



Advertisements
Similar presentations
软件开发技术基础 第 3 章 操作系统及程序设计 讲授教师:卫颜俊. 主 要 内 容 主 要 内 容 操作系统及其功能 进程管理应用程序设计 内存管理应用程序设计 设备与文件管理应用程序设计 人机接口管理应用程序设计.
Advertisements

第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
项目2 字符格式和段落编排 2017年3月7日6时54分.
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
用MFC制作windows风格界面步骤:
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
第9章 Windows 标准控件在可视化编程中的应用
第5章 文本与字体 2018/11/14 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/11/14 Huang Weitong.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第5章 文本与字体 2018/12/3 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/3 Huang Weitong.
第七章 基于对话框的应用程序 7.1 Windows编程基础 7.2 基于对话框的应用程序 7.3 静态文本框
一天學會MFC 滕薇鈞
简要回顾 了解课程体系、课程目的和主要内容 掌握Windows编程涉及的一些主要概念 DOS程序和Windows程序的主要区别 窗口和程序
第1章 Windows应用程序框架的 创建与消息处理
走进编程 程序的顺序结构(二).
辅导课程六.
第十一讲 MFC常用控件的使用(3) 严宣辉 数学与计算机科学学院
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
网络游戏开发语言基础 ——Windows程序设计
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Visual C++ Windows Programming
第5章 文本与字体 2019/2/15 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/2/15 Huang Weitong.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第10章 高级用户界面设计 10.1 菜单设计 10.2 通用对话框 10.3 图像列表框控件 10.4 树形视图控件
Windows 7 的系统设置.
第八章 文档/视图结构应用程序 8.1 文档/视图结构 8.2 图形与文字输出 8.3 定时器 8.4 鼠标和键盘消息处理 8.5 对话框
Visual Studio 2010简捷入门.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
第5章 文本与字体 2019/4/9 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/9 Huang Weitong.
第十二讲 菜单、工具栏和状态栏 严宣辉 数学与计算机科学学院
《面向对象程序设计与Visual C++6.0教程》
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
_04Combox控件和ListBox控件的使用
_05MessageMap的原理 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
PPT中视频的播放控制 苏州电教馆在线课程培训教程:PPT2003教程   制作:赵立锋 更多教程请见:
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
Visual Basic程序设计 第13章 访问数据库
VRP教程 2011.
Delphi 7.0开发示例.
第10章媒体控制接口 10.1 MCI设备类型 10.2 MCI编程步骤 10.3使用MCIWnd窗口类.
熟悉PowerDesiner12操作环境 菜单栏 标题栏 工具栏 导航栏 工作区 浮动工具条 导航选项卡 控制信息栏 状态栏.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
回归分析实验课程 (实验三) 多项式回归和定性变量的处理.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
熟悉VC++开发环境.
手工编写第一个 MFC程序 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Presentation transcript:

第5章 文本与字体 2018/12/4 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/4 Huang Weitong

第5章 文本与字体 2018/12/4 第十一章 编辑框类及其应用 2018/12/4 Huang Weitong

内容提要 编辑框类的结构及其方法 编辑框类控件的应用 2018/12/4

第5章 文本与字体 2018/12/4 §11.1. 编辑框类的结构 及其方法 2018/12/4 Huang Weitong

1.CEdit类 编辑框控件主要功能——输入或编辑文本 编辑框控件 Cedit类是Cwnd类直接派生的。 单行编辑框控件 多行编辑框控件 第5章 文本与字体 2018/12/4 1.CEdit类 编辑框控件主要功能——输入或编辑文本 编辑框控件 单行编辑框控件 多行编辑框控件 Cedit类是Cwnd类直接派生的。 2018/12/4 Huang Weitong

1.CEdit类 在MFC\Include\Afxwin.h中定义了Cedit类 第5章 文本与字体 2018/12/4 1.CEdit类 在MFC\Include\Afxwin.h中定义了Cedit类 当创建CEdit对象时,MFC自动赋予该对象一个标准的Windows编辑控件,它定义了CEdit对象。 2018/12/4 Huang Weitong

CEidt类的定义 class CEdit : public CWnd { DECLARE_DYNAMIC(CEdit) public: BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); BOOL CanUndo() const; int GetLineCount() const; BOOL GetModify() const; void SetModify(BOOL bModified = TRUE); void GetRect(LPRECT lpRect) const; DWORD GetSel() const; void GetSel(int& nStartChar, int& nEndChar) const; HLOCAL GetHandle() const; void SetHandle(HLOCAL hBuffer);

void SetMargins(UINT nLeft, UINT nRight); DWORD GetMargins() const; #if (WINVER >= 0x400) void SetMargins(UINT nLeft, UINT nRight); DWORD GetMargins() const; void SetLimitText(UINT nMax); UINT GetLimitText() const; CPoint PosFromChar(UINT nChar) const; int CharFromPos(CPoint pt) const; #endif int GetLine(int nIndex, LPTSTR lpszBuffer) const; int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const; // 操作 void EmptyUndoBuffer(); BOOL FmtLines(BOOL bAddEOL); lpszBuffer的第一个字必须 是 buffer的大小! 2018/12/4

void LimitText(int nChars = 0); int LineFromChar(int nIndex = -1) const; int LineIndex(int nLine = -1) const; int LineLength(int nLine = -1) const; void LineScroll(int nLines, int nChars = 0); void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE); void SetPasswordChar(TCHAR ch); void SetRect(LPCRECT lpRect); void SetRectNP(LPCRECT lpRect); void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE); void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE); BOOL SetTabStops(int nTabStops, LPINT rgTabStops); void SetTabStops(); BOOL SetTabStops(const int& cxEachStop); // takes an 'int'

// 剪贴板操作 BOOL Undo(); void Clear(); void Copy(); void Cut(); void Paste(); BOOL SetReadOnly(BOOL bReadOnly = TRUE); int GetFirstVisibleLine() const; TCHAR GetPasswordChar() const; // Implementation public: virtual ~CEdit(); //虚拟析构函数 };

第5章 文本与字体 2018/12/4 §11.2. 编辑框控件的应用 2018/12/4 Huang Weitong

[例11-1]设计并实现带有两个编辑框的应用程序,其窗口布局如 图11-1,功能如下: 单击Showl——Edit1编辑框中显示“This is the first EditBox.” 单击Clear1——Edit1编辑框中的内容被清除; 单击Show2——Edit2编辑框中显示“This is the second EditBox!” 单击Clear2——Edit2编辑框中的内容被清除; 单击Transfer——Edit1编辑框的内容复制到Edit2的编辑框中去 单击Undo——取消上一次操作 单击Exit——退出程序的运行 2018/12/4

图11-1 应用程序的窗口布局

1.编程过程 建立工程文件:用MFC AppWizard(exe) 可视化编程: 工程项目名称:EditBox 建立基于对话框的应用程序,选择Dialog based,生成对话框窗口作为主窗口。 可视化编程: 设计界面 连接变量 修改特性 添加代码 2018/12/4

2.设计界面 在名为IDD_EDITBOX_DIALOG的对话框作为应用程序的主窗口中进行界面设计 在EditBox的工作区中选择Resource View 在名为IDD_EDITBOX_DIALOG的对话框作为应用程序的主窗口中进行界面设计 生成了工程文件和 工程工作区文件后 在EditBox的工作区 中选择ResourceView

VC在工作台中显示可以进行可视化编辑的IDD_EDITBOX_DIALOG对话框,直接利用控件工具窗实现可视化操作。 所有可建立 的控件类型 把鼠标停在 编辑框控件 上,即可显 示该控件的 类型。

编辑框控件布置对话框中如编辑框。 将鼠标移到Edit1编辑框上; 单击鼠标右键,并在快捷菜单中选择Properties命令; 在窗口中输入控件的ID标识值IDC_EDIT1; 用同样的方法设置其它各个对象的属性。

3.给界面对象连接变量 在编辑框EDIT1中,单击鼠标右键,在弹出的快捷菜单中,选择ClassWizard; 选择Member Variables; 单击IDC_EDIT1; (a)选择Member Variables选项卡 (b)单击Control Ids列表 框中IDC_EDIT1项, 使之高亮化 (c) 单击Add Variable 按钮,显示Add MemberVariable窗口

单击Add Variable按钮,显示AddMemberVariable窗口; 成员变量名设置为m_Edit1; 类别设置为Control; 变量类型设置为CEdit。 (d)置Member Variables name 为m_Edit1 (e)置Categroy 为Control (f)置 Variable type为CEdit1 注意:只有将m_Edit1设为CEdit 类型,才能调用该类的Copy () , Paste () 等成员函数,实现本应用程序的操作。

用同样的方法给编辑框EDIT2等其它对象连接各自的变量; 最终,ClassWizard窗口将变为下图所示。

4 .修改编辑框的特性 在编辑框EDIT1中,单击鼠标右键; 在快捷菜单中,选Properties命令; 选Styles选项卡,进行设置,修改其的特性。 用同样方法修改EDIT2的特性。 多行 编辑 允许回车键,可实现多行文本输入 水平及垂 直滚动条

5 . 给界面对象连接函数添加代码 在按钮Showl上,单击鼠标右键,在弹出的快捷菜单中,选择ClassWizard; 选择Message Map; 单击IDC_SHOW1_BUTTON; 单击BN_CLICKED (c)单击Message列表框 中BN_CLICKED项, (a)选择Member Map选项卡 (d) 单击Add Function 按钮,显示Add MemberFunction窗口 (b)单击Object Ids列表框中 IDC_SHOW1_BUTTON项,

单击Add Function按钮,弹出Add Member Function窗口 接受Add Member Function建议的函数名OnShow1Button(); Member functions中增加了成员函数OnShow1Button(); 单击Edit Code按钮, 显示代码文件,进行添加代码。 (e)接受Add Member Function建议的函数 名OnShow1Button() (b) Member functions 列表框中中增加了成员 函数OnShow1Button() (d) 单击Edit Code, 显示代码文件, 添加代码

(2) 给 Clear1按钮连接代码 (1) 给Showl按钮连接代码 void CEditBoxDlg::OnShow1Button() { m_Edit1.SetSel(0,-1); //选中编辑框IDC_EDIT1中的全部内容 m_Edit1.ReplaceSel("This is the first EditBox.");//替换内容 } 请注意:程序中SetSel()和 ReplaceSel()都是CEdit类中的成员函数,m_Edit1是属于CEdit类的对象,可以调用之。 (2) 给 Clear1按钮连接代码 void CEditBoxDlg::OnClear1Button() { m_Edit1.SetSel(0,-1);//选中编辑框IDC_EDIT1中的全部内容 m_Edit1.ReplaceSel("");//用空字符串代替所选文本,即删除之 }

(3)给Show2和Clear2按钮连接代码 void CEditBoxDlg::OnShow2Button() { m_Edit2.SetSel(0,-1);//选中编辑框IDC_EDIT2中的全部内容。 m_Edit2.ReplaceSel("This is the second EditBox."); //替换内容 } void CEditBoxDlg::OnClear2Button() m_Edit2.ReplaceSel("");//用空字符串代替所选文本,即删除之

(4)给按钮IDC_Transfer_BUTTON连接代码 void CEditBoxDlg::OnCopyButton() { m_Edit1.SetSel(0,-1); m_Edit1.Copy();//将m_Editl编辑框中所选的内容拷贝到剪贴板上 m_Edit2.SetSel(0,-1); m_Edit2.ReplaceSel(""); m_Edit2.Paste();//将剪贴板中的内容粘贴到m_Edit2编辑框中 }

请注意:本应用程序的可视化编程到此已完成,编译连接后此应用程序便可执行。 (5) 给 Undo按钮连接代码 第5章 文本与字体 2018/12/4 void CEditBoxDlg::OnUndoButton() { m_Edit1.Undo();// 取消编辑框中上一次操作 m_Edit2.Undo(); } (6) 给Exit按钮连接代码 void CEditBoxDlg::OnExitButton() { OnOK(); } 请注意:本应用程序的可视化编程到此已完成,编译连接后此应用程序便可执行。 Huang Weitong

(第十一章) 完 2018/12/4

第11章课后练习题 编写一个程序,对每组4个元素的10组数据进行管理,用按键操作实现功能包括: [注]5月14日前完成 输入修改数据; 显示一组数据; 对一组数据求: 最大值; 最小值; 平均值; 均方差; [注]5月14日前完成 2018/12/4