⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap6_2.htm

📁 很不错的一本关于VC的书
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <blockquote>      <blockquote>        <blockquote>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">BOOL Create( DWORD dwStyle, const           RECT&amp; rect, CWnd* pParentWnd, UINT nID );</span></p>        </blockquote>      </blockquote>    </blockquote>    <p><span style="font-size: 9pt"> </span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">参数参数dwStyle是如表6.24所示的各种控件风格的组合.</span></p>    <p ALIGN="JUSTIFY"><b><span style="font-size: 9pt"> </span></p>    <p ALIGN="CENTER"><span style="font-size: 9pt">表6.24 轨道条控件的风格</span></b></p>    <table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="577">      <tr>        <td WIDTH="32%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">控件风格</span></b></td>        <td WIDTH="68%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">含义</span></b></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_HORZ</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">指定一个水平轨道条.该风格是默认的.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_VERT</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">指定一个垂直轨道条.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_AUTOTICKS</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在范围设定后,自动为轨道条加上刻度.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_NOTICKS</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">轨道条无刻度.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_BOTTOM</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在水平轨道条的底部显示刻度,可与TBS_TOP一起使用.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_TOP</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在水平轨道条的顶部显示刻度,可与TBS_BOTTOM一起使用.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_RIGHT</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在垂直轨道条的右侧显示刻度,可与TBS_LEFT一起使用.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_LEFT</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在垂直轨道条的左侧显示刻度,可与TBS_RIGHT一起使用.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_BOTH</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在轨道条的上下部或左右两侧都显示刻度.</span></td>      </tr>      <tr>        <td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">TBS_ENABLESELRANGE</span></td>        <td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在轨道条中显示一个选择范围.</span></td>      </tr>    </table>    <p><span style="font-size: 9pt"> </span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">除上表的风格外,一般还要为轨道条指定WS_CHILD和WS_VISIBLE风格.要创建一个具有刻度的水平轨道条,一般应指定风格为WS_CHILD|WS_VISIBLE|TBS_HORZ|     TBS_AUTOTICKS.对于用对话框模板创建的轨道条控件,可以在控件的属性对话框中指定上表中列出的控件风格。例如,在属性对话框中选择Autoticks,相当于指定了TBS_AUTOTICKS风格.</span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">通过调用CSliderCtrl类的成员函数,可以对轨道条进行查询和设置:</span></p>    <blockquote>      <blockquote>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用GetRange和SetRange来查询和设置轨道条的范围,缺省的范围是0-100.函数的声明为<br>        void GetRange( int&amp; nMin, int&amp; nMax ) const;<br>        void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );<br>        参数nMin和nMax分别是最小和最大值,参数bRedraw为TRUE时将重绘控件.</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用GetPos和SetPos来查询和设置轨道条的当前值.函数的声明为<br>        int GetPos( ) const;<br>        void SetPos( int nPos );</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用GetLineSize和SetLineSize来查询和设置在按一下左箭头键或右箭头键时滑尺的移动量,该移动量的缺省值是1个单位.函数的声明为<br>        int GetLineSize( ) const;<br>        int SetLineSize( int nSize );</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用GetPageSize和SetPageSize来查询和设置滑尺的块移动量,块移动量是指当按下PgUp或PgDown键时滑尺的移动量.函数的声明为<br>        int GetPageSize( ) const;<br>        int SetPageSize( int nSize );</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用SetTicFreq设置轨道条的刻度的频度.缺省的频度是每个单位都有一个刻度,在范围较大时,为了使刻度不至于过密,需要调用该函数设置一个合理的频度.函数的声明为<br>        void SetTicFreq( int nFreq );<br>        参数nFreq说明了两个刻度之间的间隔.</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用函数SetTic来在指定位置设置刻度.Windows自动显示的刻度是均匀的,利用该函数可以人为设置不均匀的刻度,该函数的声明为<br>        BOOL SetTic( int nTic );</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">用函数ClearTics来清除所有的刻度.该函数的声明为<br>        void ClearTics( BOOL bRedraw = FALSE );</span></p>      </blockquote>    </blockquote>    <p><b><span style="font-size: 9pt"> </span></p>    <p ALIGN="JUSTIFY"></b><span style="font-size: 9pt"><font color="#3973DE">6.2.4     进度条控件</font></span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">进度条(Progress Bar)的用途是向用户显示程序的进度.进度条是Win32控件中最简单的控件,只需少数设置即可.Windows     95中使用进度条的一个例子是磁盘扫描(ScanDisk)程序,如图6.4所示.进度条显示的数据是不精确的,它是一种模糊型的输出控件.</span></p>    <p ALIGN="center"><span style="font-size: 9pt"><img src="T6_4.gif"    alt="T6_4.tif (172432 bytes)" WIDTH="465" HEIGHT="348"></span></p>    <p ALIGN="center"><span style="font-size: 9pt">图6.4 磁盘扫描程序中的进度条</span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">MFC的CProgressCtrl类封装了进度条控件.该类的Create成员函数负责创建控件,该函数的声明为</span></p>    <blockquote>      <blockquote>        <blockquote>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">BOOL Create( DWORD dwStyle, const           RECT&amp; rect, CWnd* pParentWnd, UINT nID );</span></p>        </blockquote>      </blockquote>    </blockquote>    <p><span style="font-size: 9pt"> </span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">进度条没有专门的风格,所以参数dwStyle只能指定普通的窗口风格,一般只需指定WS_CHILD|WS_VISIBLE就可以了.</span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">CProgressCtrl类提供了少量的成员函数用来设置进度条:</span></p>    <blockquote>      <blockquote>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">void SetRange( int nLower, int nUpper );<br>        该函数用来设置进度条的范围.参数nLow和nUpper分别指定了最小和最大值,缺省时进度条的范围是0-100.</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">int SetPos( int nPos );<br>        用来设置进度条的当前进度.函数返回的是进度条的前一个进度.</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">int StepIt( );<br>        使进度增加一个步长,步长值是由SetStep函数设置的,缺省的步长值是10.函数返回进度条的前一个进度.</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">int SetStep( int nStep );<br>        用来设置步长值.函数返回原来的步长值.</span></p>      </blockquote>    </blockquote>    <p><b><span style="font-size: 9pt"> </span></p>    <p ALIGN="JUSTIFY"></b><span style="font-size: 9pt"><font color="#3973DE">6.2.5     树形视图控件</font></span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">树形视图(Tree View)是一种特殊的列表,它能以树形分层结构显示数据.在Windows     95的资源管理器(Windows Explorer)的左侧窗口中就有一个用于显示目录的典型的树形视图,如图6.5所示.在树形视图中,每个表项显示一个标题(Label),有时还会显示一幅图象,图象和标题分别提供了对数据的形象和抽象描述.通过图6.5可以看出,树形视图可以很清楚的显示出数据的分支和层次关系.由此可见,树形视图非常适合显示象目录,网络结构等这样的复杂数据.传统的列表框不能分层显示数据,因此树形视图可以看作是对列表框的一种重要改进.</span></p>    <p ALIGN="center"><span style="font-size: 9pt"><img src="T6_5.gif"    alt="T6_5.tif (269628 bytes)" WIDTH="488" HEIGHT="351"></span></p>    <p ALIGN="center"><span style="font-size: 9pt">图6.5     资源管理器中的树形视图和列表视图</span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt"><br>    树形视图是一种复杂的控件,它的复杂性体现在数据项之间具有分支和层次关系.例如,如果要向树形视图中加入新的项,则必需描述出该项与树形视图中已有项的相互关系,而不可能象往列表框中加入新项那样,调用一下AddString就完事了.另外,树形视图可以在每一项标题的左边显示一幅图象,这使控件显得更加形象生动,但同时也增加了控件的复杂程度.</span></p>    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">在讨论如何使用树形视图控件以前,有必要先介绍一下与该控件有关的一些数据类型:</span></p>    <blockquote>      <blockquote>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">HTREEITEM型句柄.Windows用HTREEITEM型句柄来代表树形视图的一项,程序通过HTREEITEM句柄来区分和访问树形视图的各个项.</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">TV_ITEM结构.该结构用来描述一个表项,它包含了表项的各种属性,其定义如下</span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">typedef struct _TV_ITEM </span></p>        <p ALIGN="JUSTIFY"><span style="font-size: 9pt">{ tvi </span></p>        <blockquote>          <p ALIGN="left"><span style="font-size: 9pt">UINT&nbsp; mask; /*包含一些屏蔽位(下面的括号中列出)的组合,用来表明结构的哪些成员是有效的*/</span></p>        </blockquote>        <blockquote>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">HTREEITEM hItem; //表项的句柄(TVIF_HANDLE)</span></p>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">UINT state; //表项的状态(TVIF_STATE)</span></p>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">UINT stateMask; //状态的屏蔽组合(TVIF_STATE)</span></p>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">LPSTR pszText; //表项的标题正文(TVIF_TEXT)</span></p>          <p ALIGN="JUSTIFY"><span style="font-size: 9pt">int cchTextMax; //正文缓冲区的大小(TVIF_TEXT)</span></p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -