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

Slides:



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

主讲:王幸民 理学院计算机基础教学部.
职业指导服务系统 欢迎了解职业指导服务系统!
职业教育.课程改革.项目课程 江苏省太仓中等专业学校校长 江苏省职业教育教学改革创新指导委员会委员 江苏省职业教育课程开发研究中心组组长
文賢國小101年度上半年在職教師資訊應用培訓 ----自由軟體系列 輕鬆學會做 -Scratch 教材設計:林森富老師.
政府採購法規概要 報告人:杜國正 行政院公共工程委員會企劃處.
肖 冰 深圳市达晨创业投资有限公司 副总裁 深圳市达晨财信创业投资管理公司 总裁
一、平面点集 定义: x、y ---自变量,u ---因变量. 点集 E ---定义域, --- 值域.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
第四章 文 字 本章主要内容 第一节 汉字的性质和特点 第二节 汉字的结构 第三节 汉字的溯源分析 第四节 现代汉字的音和义
之 魔 析 妖 鬼 解 怪 大 沈家仪小组出品.
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
普通话模拟测试 与学习平台 使用指南.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
管理学基本知识.
观摩本次优质课的一点收获和思考 巩固创新成果 打造活力课堂 烟台市教科院 韩明山.
網路小說劇情建構與伏線營造 Windows98.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
滁州学院首届微课程教学设计竞赛 课程名称:高等数学 主讲人:胡贝贝 数学与金融学院.
食品营养成分的检验. 食品营养成分的检验 科学探究的一般过程: 形成假设 设计方案 收集数据 表达交流 处理信息 得出结论 探究:馒头和蛋糕中是否含有淀粉和脂肪 假设:馒头和蛋糕中含有淀粉和脂肪.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
计算机高级程序设计 第五章.
第九章 长期资产及摊销 2017/3/21.
让微笑伴您一生.
关于整合检验检测认证机构实施意见的通知(国办发〔2014〕8号)
推进德育创新 做好新时期班主任工作 北京市广渠门中学 高金英.
拾貳、 教育行政 一、教育行政的意義 教育行政,可視為國家對教育事務的管理 ,以增進教育效果。 教育行政,乃是一利用有限資源在教育參
課程銜接 九年一貫暫行綱要( )  九年一貫課程綱要( ) 國立台南大學數學教育系 謝 堅.
吉林大学远程教育课件 Windows A P I编 程 (第四十五讲) 主讲人 : 翟慧杰 学 时:48.
2.4 二元一次方程组的应用(1).
完善洗手设施,严格手卫生培训,认真进行手卫生督查,有效提高了手卫生依从性、正确性;
第4章 需求分析 教学目的:了解需求分析的任务和步骤、评审标准和过 程,掌握基本技术,理解需求规格说明书的 作用与组成。
程式簡介、VB、物件導向 國立北門高中 林明璋.
課程名稱:程式設計 授課老師:________
巨集病毒與VBA.
Visual C++ Windows Programming
第4讲 Windows编程基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
第5章 文本与字体 2018/12/3 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/3 Huang Weitong.
一天學會MFC 滕薇鈞
简要回顾 了解课程体系、课程目的和主要内容 掌握Windows编程涉及的一些主要概念 DOS程序和Windows程序的主要区别 窗口和程序
第1章 Windows应用程序框架的 创建与消息处理
第3章 Windows 应用程序基础 2018/12/6 第2讲 Windows 应用程序基础 VC++面向对象与可视化程序设计.
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
网络游戏开发语言基础 ——Windows程序设计
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
Windows 编程技术 2005年9月 2018/12/31.
第4章 MFC编程 4.1 MFC概述 4.2 MFC和Win CObject类 4.4 消息映射的实现
Visual C++ Windows Programming
C#程序设计基础 第二章 数据类型.
版权所有 复制必究 第 6 章 MFC原理与方法.
第十二讲 菜单、工具栏和状态栏 严宣辉 数学与计算机科学学院
《面向对象程序设计与Visual C++6.0教程》
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
_05MessageMap的原理 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
标准控件的应用 控件概述 按钮控件 滚动条控件 静态控件 列表框控件 编辑框控件 组合框控件.
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
微信商城系统操作说明 色卡会智能门店.
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
功能表的建立 製作.
第10章媒体控制接口 10.1 MCI设备类型 10.2 MCI编程步骤 10.3使用MCIWnd窗口类.
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
僅首頁出現本title即可 責任的故事(二年級) 生命最美麗動人的本能 簡報製作:瑞柑國民小學 鄭雙慧 文/ 何秀芳.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
104 四技二專甄選入學 簡章解析 輔導室 何乙娟.
熟悉VC++开发环境.
用加減消去法解一元二次聯立方程式 台北縣立中山國中 第二團隊.
99 教育部專案補助計畫案明細 大類 分項 教育部補助 學校配合款 工作項目 計畫主 持人 執行期限 文號 備註 設備費 業務費 管理學院
手工编写第一个 MFC程序 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Presentation transcript:

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

第5章 文本与字体 2018/12/31 第八章 Windows的标准控件 2018/12/31 Huang Weitong

内容提要 控件的基本概念 常用子窗口操作函数 按钮控件 滚动条控件 静态控件 列表框控件 编辑框控件 组合框控件 2018/12/31

第5章 文本与字体 2018/12/31 §8.1. 控件的基本概念 2018/12/31 Huang Weitong

1.控件是用户交互的操作对象 界面的主要组成之一,用户交互的操作对象。 第5章 文本与字体 2018/12/31 1.控件是用户交互的操作对象 界面的主要组成之一,用户交互的操作对象。 具有窗口属性,可用ShowWindows()和MoveWindows()等窗口管理函数来显示或隐藏控件、改变控件的位置、尺寸以及其它操作。 系统预定义标准控件的窗口类: BUTTON 按钮控件 COMBOBOX 组合框控件 EDIT 编辑框控件 LISTBOX 列表框控件 SCROLLBAR 滚动条控件 STATIC 静态控件 2018/12/31 Huang Weitong

2.控件的创建 控件以两种形式存在: 两种创建方法: 控件的窗口类可在应用程序中定义并注册或由系统预定义。 依附于对话框; 独立的子窗口。 启动话框时,系统为对话框创建其中的控件,如按钮控件。 调用CreateWindows()或CreateWindowsEx()函数创建独立的子窗口控件。创建时必须指定控件的窗口类 控件的窗口类可在应用程序中定义并注册或由系统预定义。 2018/12/31

3.控件的消息传递 子窗口控件向其父窗口发送WM_COMNAND消息,其中 通知代码通报了子窗口控件操作,例如: wParamc参数包含子窗口 的ID; IParam参数包含子窗口的句柄和通知代码。 通知代码通报了子窗口控件操作,例如: BN_CLICKED——在按钮子窗口中单击 EN_HSCROLL——在编辑子窗口中激活水平滚动条 ……(参见教材P186,表8-2) 滚动条控件,不发送WM_COMNAND消息,发送WM_HSCROLL或WM_VSCROLL消息。 2018/12/31

wParam与lParam包含的相关信息,其含义取决控件消息 4.向控件传递的消息 调用函数SendMessage向子窗口发送消息, static LRESULT SendMessage( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ); 例如,用户单击按钮时,向该按钮发为设置按钮选中消息BM_SETCHECK,其形式为: SendMessage(hwndRadioButton,BM_SETCHECK,1,0); 调用函数SendDlgItemMessage向指定的对话框控件发送消息,其形式为: SendDlgItemMessage(hdlg,ID,message,wParam,lParam); wParam与lParam包含的相关信息,其含义取决控件消息 2018/12/31

第5章 文本与字体 2018/12/31 §8.2. 常用子窗口操作函数 2018/12/31 Huang Weitong

1.EnableWindow函数 功能:激活或禁止窗口。 2.MoveWindow函数 功能:移动或改变窗口的大小。 Ture:激活 False:禁止 BOOL EnableWindow (HWND hwnd,BOOL bEnable) 2.MoveWindow函数 功能:移动或改变窗口的大小。 窗口位置 BOOL MoveWindow ( HWND hwnd, int X,int Y, //窗口位置 int nWidth, //窗口宽度 int nHeight, //窗口高度 BOOL bReprint //表明窗口移动后是否重画 ) 窗口的 大小 2018/12/31

功能:获取指定窗口标题或文本,返回值为所取得 文本的字节数。 3.SetWindowText 功能:设置窗口的标题或文本。 设置的 文本内容 BOOL SetWindowText(HWND hwnd, LPCTSTR lpszString) 4.GetWindowText函数 功能:获取指定窗口标题或文本,返回值为所取得 文本的字节数。 int GetWindowText(HWND hwnd,LPSTR lpszString,intn Max) 字符串 缓冲区 字符串 最大长度 2018/12/31

功能:关闭窗口。关闭父窗口,同时关闭其子窗口。 [请注意] 相应于 SetWindowText和GetWindowText函数的调用,对于对话框控件,应分别改用SetDlgItemText和GetDlgItemText函数的调用。 BOOL SetDlgItemText(HWND hdlg,int ID, LPCTSTR lpszString) Int GetDlgItemText(HWND hdlg,int ID, LPSTR lpszString, int nMax) 5.DestroyWindow函数 功能:关闭窗口。关闭父窗口,同时关闭其子窗口。 BOOL DestroyWindow(HWND hwnd) 2018/12/31

第5章 文本与字体 2018/12/31 §8.3. 按钮控件 2018/12/31 Huang Weitong

1.按钮控件的分类 普通按钮和默认按钮 圆按钮 复选框按钮 组框:按钮分组 单选按钮:编程确保互斥性 自动按钮:自动实现互斥性 2018/12/31

2.按钮控件的创建 按钮控件的创建方式 在对话框中定义控件 创建控件型的子窗口,包括两个步骤: 创建并注册一个窗口类的实例 创建并显示窗口实例 2018/12/31

(1) 在对话框定义中创建控件,其一般形式为: Control-type [Title,] ID,X,Y, nWidth,nHeight [,Style] 控件标题或内容 控件类型 控件起始坐标 控件的宽度与高度 控件 样式 按钮控件样式 BS_PUSHBUTTON 普通按钮 BS_DEFPUSHBUTTON 默认按钮 BS_RADIOBUTTON 单选按钮 BS_CHKCKBOX 复选框 BS_OWNERDRAW 自绘按钮 BS_TEXT 带文本按钮 BS_ICON 带图标按钮 BS_BITMAP 带位图按钮 BS_CENTER 按钮上文本居中 BS_LEFT 按钮上文本左对齐 BS_RIGHT 按钮上文本右对齐 BS_USERBUTTON 用户定义按钮 2018/12/31

(2)创建按钮子窗口控件 调用CreateWindow函数创建子窗口滚动条控件,其形式如下: CreateWindow( “BUTTON”, //预定义按钮窗口类名 lTitle, //按钮标题(文本或位图) WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON…,//样式 X,Y, nWidth,nHeight, //按钮始坐标、宽度与高度 hwndParant, //父其窗口的句柄 ID, //按钮标识 hInstance, //应用程序当前实例句柄 NULL ); 2018/12/31

(2)创建滚动条子窗口控件(续) 调用CreateWindowEx函数创建扩展的子窗口控件,它与 CreateWindow函数创建的子窗口控件的差别,只是多一些扩展样式的选择。此函数原型如下: CreateWindowEx( DRORD dwExstyle //扩展的窗口类名 LPCTSTR lpClassName, //已注册窗口类指针 LPCTSTR lpWindowName, //窗口名称指针 DRORD dwstyle, //窗口样式 int X,Y, nWidth,nHeight,//滚动框始坐标、宽度与高度 HWND hwndParant, //父其窗口的句柄 HMEUN hMeun, //滚动条标识/菜单的句柄 HINSTANCE hInstance, //应用程序当前实例句柄 NULL ); 2018/12/31

3.按钮控件向应用程序传递消息 当用户与控件交互操作时,控件向其父窗口发送WM_COMMAND消息,其wParam参数: 低字节包含控件的标识值(ID); 高字节中包含控件向父窗口发出的通知代码。 按钮控件的通知代码: BN_CLICKED 单击按钮 BN_DOUBLECLICKED 双击按钮 BN_SETFOCUS 按钮获得输入焦点 BN_KILLFOCUS 按钮失去输入焦点 2018/12/31

4.应用程序向按钮控件传递消息 调用函数SendMessage向按钮控件发出消息,其格式: SendMessage(hwnd,message,wParam,lParam); 发出的消息 字参数确定动作 BM_GETCHECK 获取选中状态 BM_SETCHECK 设置/取消选中状态 BM_GETSTYLE 获取样式 BM_SETSTYLE 设置样式 BM_SETSTATE 设置状态 BM_GETIMAGE 获取按钮图标或位图句柄 BM_SETIMAGE 设置按钮图标或位图句柄 2018/12/31

4.应用程序向按钮控件传递消息(续) 对同样的消息,字参数不同,动作也不同,例如,设置/取消选中标志, 若字参数应取1,则设置标志 SendMessage (hwnd,BM_SETCHECK,1,0); 若字参数应取0,则设置标志 SendMessage (hwnd,BM_SETCHECK,0,0); 相应于对话框按钮控件,则改调用函数SendDlgItemMessage(hdlg,ID,message,wParam,lParam); 2018/12/31

5.按钮控件示例 【例8-1】创建如右上图的按钮控件系列,当单击每一个按钮后,就出现如右下图所示的响应。 [注]程序清单参见教材p192-197 2018/12/31

第5章 文本与字体 2018/12/31 §8.4. 滚动条控件 2018/12/31 Huang Weitong

1. 滚动条控件的功能与分类 滚动条控件的功能——当应用程序显示的内容超过窗口的范围时,用户可通过拖动滚动条遍历整个窗口内容。 滚动条分为垂直与水平滚动条,分别实现窗口内容纵向和横向的滚动。 2018/12/31

2. 滚动条控件的创建 三种创建方法: 创建窗口滚动条; 创建滚动条子窗口控件; (1)创建窗口滚动条 创建对话框中的滚动条控件。 创建样式为WS_VSCROLL和WS_HSCROLL的窗口,其形式如下: hwnd=CreateWindow(lpszClassName, lpszTitle, WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL, ...... hInstance, NULL); 2018/12/31

(2)创建滚动条子窗口控件 调用CreateWindow创建子窗口滚动条控件,其形式如下: CreateWindow( “SCROLLBAR”, //预定义窗口类名 lpszScrollTitle, //标题,常为NULL WS_CHILD | WS_VISIBLE…,//样式 X,Y, nWidth,nHeight, //滚动框始坐标、宽度与高度 hwndParant, //父其窗口的句柄 ID, //滚动条标识 hInstance, //应用程序当前实例句柄 NULL ); 滚动条样式除窗口类样式外,常用的还有SBS_VERT和SBS_HORZ 2018/12/31

对话框的定义中完成创建操作,一般形式如下: SCROLLBAR ID,X,Y,nWidth,nHeight,[style]; (3)创建对话框中的滚动条控件 对话框的定义中完成创建操作,一般形式如下: SCROLLBAR ID,X,Y,nWidth,nHeight,[style]; 2018/12/31

3. 滚动条控件发送的消息 滚动操作时,该控件向应用程序发送相应的WM_VSCROLL 或WM_HSCROLL消息。 消息字参数wParam低字节为滚动条动作标识: SB_TOP 到滚动条顶端或右端 SB_BOTTOM 到滚动条底端或左端 SB_RIGHT 滚动到右边 SB_LEFT 滚动到左边 SB_PAGEUP 向上滚动一页 …… SB_LINERIGHT 向右滚动一行 SB_THUMBPOSTION 滚动框移到新位置 SB_THUMBTRACK 滚动框条被拖动 SB_ENDSCROLL 滚动条到最终位置 2018/12/31

4. 常用滚动条操作函数 (1)SetScrollRange:设置滚动条的滚动范围 (2)SetScrollPos:设置滚动块的位置 SB_CTL 为控件滚动条 SB_HORZ 为窗口水平滚动条 SB_VERT 为窗口垂直滚动条 int SetScrollRange (HWND hwnd, int nBar, //滚动条特性标识 int nMaxPos, //滚动条最大滚动位置 int nMinPos, //滚动条最小滚动位置 BOOL bRedraw) //当滚动条改变时是否重绘;非0表示重绘 (2)SetScrollPos:设置滚动块的位置 int SetScrollPos (HWND hwnd, int nBar, //滚动条的特性标识 int nPos, //滚动块的位置 BOOL bRedraw)//当滚动条改变时是否重绘; 2018/12/31

(3)GetSystemMetrics:获取系统提供的滚动条尺寸 如:获取系统水平滚动条的高度: GetSystemMetrics(SM_CYHSCROLL); (4)GetScrollpos:获取滚动块的位置 int GetScrollPos ( HWND hwnd, //窗口句柄,同SetScrollRange函数 int nBar ); //滚动条特性标识 (5)GetScrollRange:获取滚动条的滚动范围 BOOL GetScrollRange( HWND hwnd, int nBar, LPINT lpMinPos, //接收最小位置的整形变量的地址 LPINT lpMaxPos); //接收最大位置的整形变量的地址 2018/12/31

5. 滚动控件示例 【例8-2】一个带滚动条的颜色框,拉动滚动条,使其显示的区域产生变化,同时,通过设置颜色,来改变颜色框的颜色。 [注]程序清单参见教材p201-211 2018/12/31

第5章 文本与字体 2018/12/31 §8.5. 静态控件 2018/12/31 Huang Weitong

1. 静态控件及其特点 静态控件是一种包含正文或图形的小窗口。通常用于标记其他控件或控件组。 特点: 一般情况下,不接受用户输入,也不发消息。 可设置具有超文本功能,能响应用户输入,向应用程序发消息。 2018/12/31

2. 静态控件的创建 创建静态控件方法: 创建静态控件子窗口: 创建对话框中静态控件。 (1)创建静态控件子窗口 CreateWindow( “ STATIC”, ∥预定义窗口类名 lpszStaticTitle, ∥静态控件标题 WS_CHILD | WS_VISIBLE|WS_BORDER|…,∥样式 X,Y, nWidth,nHeight, ∥静态控件起始坐标及宽度与高度 hwndParant, ∥拥有该静态控件的窗口句柄 ID, ∥静态控件标识 HInstance, ∥应用程序当前实例句柄 NULL ) 2018/12/31

Static-Type Tilte,ID,X,Y,nWidth,nHeight,[,style] (2)创建对话框中静态控件 Static-Type Tilte,ID,X,Y,nWidth,nHeight,[,style] 标题(文本 或位图等) 起始坐标 宽度高度 类型关键字 LTEXT (左对齐) RTEXT (右对齐) CTEX (居中) 样 式 选 项 SS_LEFT 左对齐文本 SS_RIGHT 右对齐文本 SS_CENTER 文本居中 SS_ICON 包含位图 SS_CENTEIMAGE 位图居中 SS_NOTIFY 单击时,发消息 SS_USERITEM 用户定义 2018/12/31

3.静态控件消息发送 仅当样式选项设为SS_NOTIFY,静态控件 被单击时,向其父窗口发WM _COMMAND消息, lParam包含静态控件句柄 wParam低字节包含静态控件ID,高字节包含通知码,其含义: STN_CLICKED 单击静态控件 STN_ENABLE 激话静态控件 STN_DBLCLK 双击静态控件 STN_DISABLE 禁止静态控件 2018/12/31

4.静态控件应用举例 【例8-3】位图静态控件的创建,消息的强制生成与处理,当单击位图时,就报告该位图的尺寸 [注]程序清单参见教材p212-215 2018/12/31

第5章 文本与字体 2018/12/31 §8.6. 列表框控件 2018/12/31 Huang Weitong

1. 列表框控件的特点 列表框是集中显示同类内容的子窗口,例如,显示同类型文件等。 特点: 提供大量的可选项,需要时自动显示滚动条; 可设置单选或多选功能; 单击列表项,以 “ 反相”显示表示被选中;再次单击该项,恢复为非选中状态。 2018/12/31

2.列表框控件的创建 创建列表框控件方法: 创建列表框控件子窗口: 创建作为对话框控件的列表框。 (1)创建列表框控件子窗口 CreateWindow( “ LISTBOX”, ∥预定义窗口类名 NULL, ∥列表框一般无标题 WS_CHILD | WS_VISIBLE|WS_BORDER|…,∥样式 X,Y,nWidth,nHeight, ∥列表框起始坐标及宽度与高度 hwndParant, ∥其父窗口句柄 ID, ∥列表框标识 HInstance, ∥应用程序当前实例句柄 NULL ); 2018/12/31

LISTBOX ID,X,Y,nWidth,nHeight,[,style] (2)创建作为对话框控件的列表框 LISTBOX ID,X,Y,nWidth,nHeight,[,style] 起始坐标 宽度高度 控件类型 关键字 样 式 选 项 LBS_NOTIFY 可向父窗口发消息 LBS_SORT 按字母顺序排练表项 LBS_MULYPLESEL 多选列表框 LBS_EXTENDEDSEL 扩展多选列表框 LBS_NOREDRAW 列表框改变时步重画 LBS_STANDARD 标准样式 2018/12/31

3.列表框向应用程序传递消息 列表框向应用程序发出WM_COMMAND消息; 消息字参数wParam含义: 消息通知码含义: 低字节为控件标识值 高字节为标识列表框动作的消息通知码。 消息通知码含义: LBN_SELCHANGE 用户选择已发生改变 LBN_DBLCLK 双击 LBN_SELCANCLE 选择被取消 LBN_SETFOCUS 列表框收到输入焦点 LBN_KILLFOCUS 列表框失去输入焦点 2018/12/31

4.应用程序向列表框传递消息 索引号的使用 多选列表框消息发送 发送LB_DIR消息以显示文件目录。 调用函数SendMessage或SendDlgItemMessage向列表框发送各种消息。 索引号的使用 列表项由索引值指定,首项缺省索引号为0,末项为-1 发送LB_GETCURSEL消息获取当前选中的索引号。 多选列表框消息发送 可选取多个项,发送LB_GETSELCOUNT消息获取选中的项数; 发送LB_GETSEL消息获取指定项的选中状态 发送LB_DIR消息以显示文件目录。 2018/12/31

列表框传递消息 LB_ADDFILE 在文件列表中加入指定文件 LB_GETTEXT 获取指定项文本 LB_ADDSTRING 在列表框中加入列表项 LB_GETTEXTLEN 获取指定项长高 LB_DELETESTRING 在列表框中删除列表项 LB_GETTOPINDEX 获取列表框中第一项的索引值 LB_DIR 在列表框中列出指定文件 LB_INSERTSTRING 在列表框的指定位置加入一项 LB_FINDSTRING 在列表框中查找指定项 LB_RESETCONTENT 清空列表框 LB_GETCOUNT 获取多选列表框中的项数 LB_SETSEL 设置多选列表框中指定项的选中状态 LB_GETCURSEL 获取列表框中当前选中项的索引值 LB_SETCURSEL 设置单选列表框中指定项的选中状态 LB_GETSEL 获取列表框中指定项的选中状态 LB_SETTOPINDEX 设置列表框中第一项的索引值 LB_GETSELCOUNT 获取多选列表框中选中的项数 2018/12/31

5. 列表框应用举例 【例8-4】创建常用的单选列表框,在该列表框中列出文件目录. [注]程序清单参见教材p218-221 2018/12/31

第5章 文本与字体 2018/12/31 §8.7. 编辑框控件 2018/12/31 Huang Weitong

1. 编辑框控件及其特点 编辑框的主要作用在于接收用户键盘输入 功能特点: 可自动转换用户输入,如大小写转换等; 可使用通配符,如*代替用户输入; 支持多行编辑。 2018/12/31

2. 编辑框控件的创建 创建编辑框子窗口控件 创建对话框中编辑框控件 CreateWindow( “EDIT”, ∥预定义窗口类名 NULL, ∥编辑框一般无标题 WS_CHILD|WS_VISIBLE|…, ∥ 样式 X,Y, nWidth,nHeight, ∥起始坐标,宽度与高度 hwndParant, ∥其父窗口句柄 ID, ∥编辑框标识 hInstance, ∥应用程序当前实例句柄 NULL) 创建对话框中编辑框控件 EDITTEXT ID,X,Y,nWidth,nHeight,[,style] 2018/12/31

3.编辑框向应用程序传递消息 编辑框向应用程序发送WM_COMMAND消息; 消息字参数wParam的含义: 消息通知码含义: 低字节为控件标识: 高字节为标识编辑框动作的消息通知码。 消息通知码含义: EN_SETFOCUS 编辑框取得输入焦点 EN_KILLFOCUS 编辑框失去输入焦点 EN_CHANGE 编辑框内容发生改变 EN_UPDATE 编辑框内容被更改 EN_MAXTEXT 输入已达到最大字节数 EN_HSCROLL 编辑框内容水平滚动 EN_VSCROLL 编辑框内容垂直滚动 2018/12/31

4.应用程序向编辑框传递消息 调用SendMessage和SendDlgItemMessage向编辑框发送各种消息 常见编辑框消息及其含义: EM_GETRECT 获取编辑框矩形尺寸 EM_SETRECT 设置编辑框矩形尺寸 EM_LINESCROLL 设置滚动条滚动步长 EM_GETHANDLE 获取输入缓冲区句柄 EM_SETHANDLE 设置输入缓冲区句柄 EM_LINELENGTH 获取文本行长度 EM_GETFONT 获取编辑框使用的字体 …... EM_GETSEL 获取编辑框中的选中的文本 EM_SETSEL 设置编辑框中的选中的文本 2018/12/31

5.编辑框控件应用举例 【例8-5】包含编辑框控件的“ 乘法器” 。输入框中输入一个数,单击 “ ×” ,再输入另一个数,在结果输出框中输出结果。 [注]程序清单参见教材p223-228 2018/12/31

第5章 文本与字体 2018/12/31 §8.8. 组合框控件 2018/12/31 Huang Weitong

1. 组合框控件的特点 使用单一控件不能完全满足与用户交互的需要,组合两种预定义窗口成为组合框。 对话框及与静态文本和编辑框组合是最常见的组合框。 组合框中的列表框常隐藏于编辑框下,单击编辑框右侧箭头时被弹出。 2018/12/31

2.组合框控件的创建 创建组合框子窗口 创建作为对话框控件的组合框 CreateWindow( “COMBOBOX”, ∥预定义窗口类名 NULL, ∥组合框一般无标题 CBS_DROPDOWN|…, ∥样式 X,Y, nWidth,nHeight, ∥起始坐标,宽度与高度 hwndParant, ∥其父窗口句柄 ID, ∥组合框标识 hInstance, ∥应用程序当前实例句柄 NULL) 创建作为对话框控件的组合框 COMBOBOX ID,X,Y,nWidth,nHeight,[,style] 2018/12/31

3.组合框向应用程序传递消息 组合框向应用程序发送WM_COMMAND消息; 消息字参数wParam的含义: 消息通知码含义: 低字节为控件标识: 高字节为标识组合框动作的消息通知码。 消息通知码含义: CBN_SELCHANGE 其列表框选中项发生改变 CBN_DBLCLK 双击 CBN_SETFOCUS 组合框取得输入焦点 CBN_KILLFOCUS 组合框失去输入焦点 CBN_EDITCHANGE 其编辑框中文本发生改变 CBN_EDITUPDATE 其编辑框中显示修改的文本 CBN_DROPDOWN 其列表框将下拉 CBN_CLOSEUPL 其列表框将隐藏 2018/12/31

4.应用程序向组合框传递消息 调用SendMessage和SendDlgItemMessage向组合框发送各种消息 常见编辑框消息及其含义: CB_SHOW DROPDOWN 显示下拉列表框 CB_ADDSTRING 列表框中加新项 CB_DSTRING 列表框删除项 CB_INSERTSTRING 列表框中插入新项 CB_FINDSTRING 列表框中查找项 CB_RESETCONTENT 清空列表框 CB_DTR 列表框列目录 …... CB_GETEDITSEL 获取编辑框中的选择 CB_SETEDITSEL 设置编辑框中的选择 2018/12/31

5. 组合框控件应用举例 【例8-6】创建一个组合框控件,当单击向下按钮时,显示可选文件的名字。 [注]程序清单参见教材p230-233. 2018/12/31

(第八章) 完 2018/12/31

中期考核的大作业 综合运用已学过vc++编程知识,设计实现科学计算小计算器,其功能类似于Windows系统附件中的计算器。 [注]5月7日前完成 2018/12/31