滚动条(下).docx_第1页
滚动条(下).docx_第2页
滚动条(下).docx_第3页
滚动条(下).docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

滚动条这次我们将在上一堂课的程序基础上加入一些专业气息。获取字体高度在上一个程序中,我们固定了每行的高度为30个像素。可如果字体大小改变,比如说字体高度变为40,那么我们的程序会将字符重叠显示,这不是我们希望看到的。所以我们要讲每行的高度与字体的高度关联起来。那么首先我们就得获取到当前字体的高度。用途获取字体信息原型BOOL GetTextMetrics(HDC hdc, /设备描述表句柄LPTEXTMETRIC lptm); /TEXTMETRIC 结构指针返回值成功返回非0值,失败返回0TEXTMETRIC中包含了字体的全部信息,如高度,宽度,字符集等等等等,我们没必要去一一了解,今天我们只想知道谁是字符高度:tmHeight. GetTextMetrics会将当前设备描述表中选定的字体信息,写入lptm指向的对象。那么我们需要先获取到设备描述表句柄。非WM_PAINT消息中获取HDC在非WM_PAINT消息中,获取HDC的方式与我们之前学过的并不一样。它是使用GetDC获取,并使用Release来释放的。用途在非WM_PAINT消息中获取 设备描述表句柄原型HDCGetDC( HWND hWnd); /窗体句柄返回值成功返回设备描述表句柄,失败返回NULL用途在非WM_PAINT消息中 释放设备描述表句柄原型intReleaseDC( HWND hWnd, /窗体句柄 HDC hDC); /设备描述表句柄返回值释放成功返回1 释放失败返回0流行的滚动条函数同下面要讲的两个滚动条函数相比,以前我们学习的滚动条函数确实是过时的。用途设置滚动条信息原型intSetScrollInfo( HWND hwnd, /窗体句柄 int nBar, /预设置的滚动条 LPSCROLLINFO lpsi, /SCROLLINFO 结构指针 BOOL redraw); /是否立刻重绘返回值滚动条当前位置用途获取滚动条信息原型BOOLGetScrollInfo( HWND hwnd, /窗体句柄 int nBar, /预获取的滚动条 LPSCROLLINFO lpsi); /SCROLLINFO 结构指针返回值成功返回非0值 失败返回0同之前的滚动条函数一样,参数2为SB_VERT(垂直)或SB_HERT(水平)而对滚动条的操作都由参数3来决定。typedef struct tagSCROLLINFO UINT cbSize; /结构大小 UINT fMask; /操作标记 int nMin; /最小值 int nMax; /最大值 UINT nPage; /每页大小 int nPos; /滚动框当前位置 int nTrackPos; /拖动时的滚动框当前位置 SCROLLINFO, FAR *LPSCROLLINFO;我们可以在程序中定义如下对象SCROLLINFO si;si.cbSize = sizeof(si);Windows中有很多结构第一个字段都用于指出该结构大小。这个字段使将来的Windows版本可以扩充结构并添加新的功能,并且仍然与以前编译的版本兼容。si.fMask该字段设置为以SIF前缀开头的一个或多个标志,使用 (|)将他们组合。#define SIF_RANGE 0x0001 /设置(获取)滚动范围#define SIF_PAGE 0x0002/设置(获取)滚动页面大小#define SIF_POS 0x0004/设置(获取)当前位置#define SIF_DISABLENOSCROLL 0x0008/设置滚动条不自动隐藏#define SIF_TRACKPOS 0x0010/获取滚动条拖动时位置#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)滚动窗体之前,我们都是使用Invalidate()使窗体刷新,实际上我们还有别的选择。滚动窗体。用途滚动窗体客户区原型BOOLScrollWindow( HWND hWnd, /窗体句柄 int XAmount, /水平滚动距离 int YAmount

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论