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

Slides:



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

职业指导服务系统 欢迎了解职业指导服务系统!
C语言程序设计 主讲教师 :张群燕 电话:
我征服了黃山 林達的黃山之旅 2006春.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
战争结束了 年11月,听到停战的消息,巴黎街头人们欣喜若狂。法国总理克里孟梭说:“吻我的姑娘有500多个了。”
普通话模拟测试 与学习平台 使用指南.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
第 八 章 交互结构(2).
AI人工智慧報告 黑白棋 班級:資工四乙 學號:498G0009 姓名:盧冠妤.
網路小說劇情建構與伏線營造 Windows98.
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
计算机高级程序设计 第五章.
第 5 章 流程控制 (一): 條件分支.
雷 霆 战 机 By—谷恩轩&余万全.
C++程序设计 王希 图书馆三楼办公室.
第三章 控制结构.
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
佇列 (Queue).
Screen Layout & Background Image
Visual C++ Windows Programming
·线性表的定义及ADT ·线性表的顺序存储结构 ·线性表的链接存储结构 · 单向循环链表 · 双链表、双向循环链表 · 一元多项式的加法
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程序设计期末复习 黎金宁
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第5章 文本与字体 2018/12/3 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/3 Huang Weitong.
简要回顾 了解课程体系、课程目的和主要内容 掌握Windows编程涉及的一些主要概念 DOS程序和Windows程序的主要区别 窗口和程序
第十一讲 MFC常用控件的使用(3) 严宣辉 数学与计算机科学学院
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
网络游戏开发语言基础 ——Windows程序设计
VC++开发实例 张荣梅 2007年2月.
第5章 文本与字体 2018/12/31 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/31 Huang Weitong.
Visual C++ Windows Programming
第三章 栈和队列.
C#程序设计基础 第二章 数据类型.
Animation(動畫) 靜宜大學資工系 蔡奇偉 副教授
第三章 C# 基础知识.
第三章 链表 单链表 循环链表 多项式及其相加 双向链表 稀疏矩阵.
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第十二讲 菜单、工具栏和状态栏 严宣辉 数学与计算机科学学院
《面向对象程序设计与Visual C++6.0教程》
保留字與識別字.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
程式的時間與空間 Time and Space in Programming
微信商城系统操作说明 色卡会智能门店.
字符串 (String) 字符串是 n (  0 ) 个字符的有限序列, 记作 S = “c1c2c3…cn” 其中,S 是串名字
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
功能表的建立 製作.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
C++程序设计 吉林大学计算机科学与技术(软件)学院.
生命教育 媒材應用分享 電影 天外奇蹟(UP) 華盛頓高中 巫孟容.
第11章 物件互動行為塑模.
進階資料結構(2) Disjoint Sets
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
第五章 序列埠通訊 並列與序列通訊簡介 認識序列埠 認識字元資料類型 字串資料類型 從序列埠監控視窗觀察變數 從Arduino接收序列資料
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
第2章 Java语言基础.
本课内容 接下来的几节课,我们要利用C语言开发一些游戏 本节课开发一个俄罗斯方块游戏 游戏规则.
MFC的六大核心 机制3 动态创建 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
第二章 Java基础语法 北京传智播客教育
手工编写第一个 MFC程序 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Presentation transcript:

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

第5章 文本与字体 2019/4/25 第十三章 滚动条类及其应用 2019/4/25 Huang Weitong

内容提要 滚动条类简介 滚动条类控件的应用 2019/4/25

第5章 文本与字体 2019/4/25 §13.1. 滚动条类简介 2019/4/25 Huang Weitong

1. 滚动条和滚动条类 滚动条是可视化的交互式控件,它包括一个滑块、滚动条的两端的按钮等。 两种不同的滚动条 第5章 文本与字体 2019/4/25 1. 滚动条和滚动条类 滚动条是可视化的交互式控件,它包括一个滑块、滚动条的两端的按钮等。 两种不同的滚动条 滚动条控件——由用户创建、管理和释放的 属于窗口的滚动条——由该窗口创建、管理和释放的。 作为任何一个窗口的子控件,滚动条可以通过通知代码来创建,但也可以用对话框资源模板来创建。 Huang Weitong

滚动条类Cscrollbar是由CWnd类直接派生的。

2.CScrollBar类的创建与初始化 CScrollBar::pMyScroll=new CScrollBar; 关键字new和构造函数CScrollBar::CScrollBar() 为一个 ScrollBar对象分配一个实例 CScrollBar::pMyScroll=new CScrollBar; 初始化CScrollBar对象,将一个Windows滚动条赋予它,并用CScroll::Create()方法设置参数和样式 BOOL Create(DWORD dwStyle, //滚动条窗口的样式 const RECT& rect,//表示控件的大小和位置 CWnd *pParentWnd,//指向控件所属窗口的指针 UINT nID); //父窗口的标识

3.滚动条的设置 调用CScrollBar::SetScrollRange()设置滚动条控件范围。 例如,设置滚动范围为-100到100的垂直滚动条 pMyScroll->SetScrollRange(SB_VERT,-100,100); 调用SetScrollPos()设置滚动块当前位置。 例如,滚动快的位置在-100到100的中间,即为0的位置 pMyScroller->SetScrollPos(0);

第5章 文本与字体 2019/4/25 §13.1. 滚动条类的应用技术 2019/4/25 Huang Weitong

[例13-1]带滚动条类的应用程序,其界面标题为Application of ScrollBar,滚动条的滚动范围设为0到20,当前值为 10,右编辑框显示当前值。四个按键控制滚动条动作: 单击Up按钮,滚动块移到最上边,编辑框的数字变为0 单击Down按钮,滚动块移到最下边,编辑框的数字变为20; 单击Reset按钮,滚动块移到中间,编辑框的数字变为10 单击Exit按钮,退出应用程序。

单击滚动块与箭头之间的区域。滚动块上移或下移三格,编辑框中的数字加3或减3 单击Reset,滚动块移到中间,编辑框的数字为10 单击Up,滚动块移 到最上边 拖动滚动块。编辑框中的数字随之变化 单击Down,滚动块移到最下边 单击Exit,退出应用程序 单击上/下的箭头,滚动块向上/向下移动一格,编辑框中的数字加1或减1 编辑框显示当前滚动块位置

应用程序的可视化编程 应用程序的代码编程 (1)给滚动条连接变量 ID 变量名 类别 类型 IDC_SCROLLBAR m_Scrollbar Control Cscrollbar IDC_EDITl m_Edit Control CEdit

(2)初始化滚动条 BOOL CSCROLLBARDlg::OnInitDialog() { CDialog::OnInitDialog(); ASSERT((IDM_ABOUTBOX & 0xFFF0)==IDM_ABOUTBOX); //加 “About...”菜单项。 ASSERT(IDM_ABOUTBOX < 0xF000);//IDM_ABOUTBOX应在系统命令范围内 CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); }

//为该对话框设置图标,当该应用程序的主窗口不是一个对话框时,程序将自动设置图标 SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon m_Scrollbar.SetScrollRange(0,20); m_Scrollbar.SetScrollPos(10); char sPos[10]; itoa(m_Scrollbar.GetScrollPos(),sPos,10);//数值转成字符 m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); UpdateData(FALSE); return TRUE; //return TRUE unless you set the focus to a control }

(3)给滚动条消息添加代码 void CSCROLLBARDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { char sPos[10]; int iNowPos; switch(nSBCode) { if(pScrollBar==&m_Scrollbar) { case SB_THUMBTRACK: //拖动滚动滑块时 m_Scrollbar.SetScrollPos(nPos); itoa(nPos,sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); break; case SB_LINEDOWN: //单击滚动条向下的箭头 iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos+1; if(iNowPos>20) iNowPos=20; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10);

iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos-1; case SB_LINEUP: //单击滚动条向上的箭头 iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos-1; if(iNowPos<0) iNowPos=0; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); break; case SB_PAGEDOWN: //单击滚动条下箭头与滚动块之间的区域 iNowPos=iNowPos+3; if(iNowPos>20) iNowPos=20;

case SB_PAGEUP: //单击滚动条上箭头与滚动块之间的区域 iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos-3; if(iNowPos<0)iNowPos=0; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); break; } CDialog::OnVScroll(nSBCode, nPos, pScrollBar);

(4) 给Exit按钮连接代码 (5) 给Up按钮连接代码 void CSELECTBOXDlg::OnExitButton() { OnOK(); } (5) 给Up按钮连接代码 void CSCROLLBARDlg::OnUpButton() { m_Scrollbar.SetScrollPos(0); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel("0"); }

(6) 给 Down按钮添加代码 (7) 给Reset按钮添加代码 void CSCROLLBARDlg::OnDownButton() { m_Scrollbar.SetScrollPos(20); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel("20"); } (7) 给Reset按钮添加代码 void CSCROLLBARDlg::OnResetButton() { m_Scrollbar.SetScrollPos(10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel("10"); }

(8)将编辑框设置为只读的 在此应用中, 编辑框只显示, 不编辑,其属 性应为只读。 第5章 文本与字体 2019/4/25 Huang Weitong

(第十三章) 完 2019/4/25

第13-14章课后练习题 编写一个程序,用含有按钮和滚动条等控件的三个分组框,实现功能包括: [注]5月28日前完成 控制显示日期和时间; 选择加或减运算,并显示数据; 滚动条输入数据; [注]5月28日前完成 2019/4/25