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

📄 chap6_2.htm

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

⌨️ 快捷键说明

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