友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第62章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




联窗口发送消息WM_SETTEXT,同时,上下控件的位置以十进制或十六 

进制格式发出。  



选项No   thousands(UDS_NOTHOUSANDS)被设置时,在数的每三位中, 

不插入一个起分隔作用的千位分隔符。  



选项Wrap (UDS_WRAP )决定当上下控件的选择位置超过极限位置时的 

处理方式:当该选项被设置时,当上下控件的位置达到其最大或最小 

位置后,用户试图再增大或减小该值时,上下控件的值变为最小或最 

大。否则,上下控件的值只是简单的保持不变。  



选项Arrow   keys (UDS_ARROWKEYS)被设置时,当按下向上或向下方 

向箭头时,控制增加或减小其位置。  



上下控件的扩展风格的设定与其它控件的设定没有什么大的改变,这 

里不再详述。  



下面,我们看一下上下控件的关联窗口的指定及其行为管理的实现。  



首先,我们看看当上下控件的Auto        buddy风格被设定的情况下的管 

理。  



我们先指定上下控件的关联窗口。这需要用到函数SetBuddy:  



CWnd* SetBuddy( CWnd* pWndBuddy );  



该函数的唯一一个参数为一指向上下控件的关联窗口的指针,其返回 

值为一指向  



该上下控件原来的关联窗口的指针。  



  l 注意:  



  l 在程序中,一般应先指定上下控件的变动范围SetRange:  



  l void SetRange( int nLower; int nUpper );  


…………………………………………………………Page 289……………………………………………………………

        该函数的两个参数分别指定了上下控件的最小及最大变动 

        值。  



以后我们不再需要为上下控件的关联窗口的行为编写任何代码。系统 

会为我们作好所有的规范化的工作:上下控件的位置改变时,其变化 

直接反应在与其关联的窗口中――该窗口中会以十进制或十六进制数 

的形式来反应上下控件此时的位置信息。  



当我们不设定该风格的时候,情况发生了变化。范围及关联窗口的设 

定同上文没有什么差别。但现在,当上下控件的位置发生变化时,虽 

然上下控件会发送消息反应这一变化,但其关联窗口的行为需要我们 

编写代码来实现。当上下控件发生的位置与其前一位置不一样时,它 

发送消息ON_WM_HSCROLL (ON_WM_VSCROLL)来反应这一变化。在程序 

接收到该消息后,经过适当的处理,就可以自己对该消息作出反应了 

 (当然,如果你愿意,你也可以什么事也不做)。  



下面为一段关于上下控件的关联窗口控制的代码。  



// 。。。  



m_Spin2。SetRange(0;(sizeof(szColors)/sizeof(szColors'0'))…1);  



m_Spin2。SetPos(0);  



m_Spin2。SetBuddy(&m_Buddy2);  



m_Spin2。SetWindowText(szColors'0');  



// 。。。  



void CSpinBoxDlg::OnHScroll(UINT nSBCode; UINT nPos; CScrollBar* pScrollBar)   



{  



// TODO: Add your message handler code here and/or call default  



CSpinButtonCtrl *pSpin=(CSpinButtonCtrl *)pScrollBar;  



if(pSpin==&m_Spin2)  



m_Buddy2。SetWindowText(szColors'pSpin…》GetPos()');  



CDialog::OnHScroll(nSBCode; nPos; pScrollBar);  



}  



第一段代码设定了上下控件的范围,关联窗口,位置,并初始化了编 


…………………………………………………………Page 290……………………………………………………………

辑框中的显示。  



第二段中的函数处理了消息ON_WM_HSCROLL,并利用上下控件的位置 

对其关联窗口的显示进行了改变。语句  



CSpinButtonCtrl *pSpin=(CSpinButtonCtrl *)pScrollBar;  



将该消息的最后一个参数进行转换,以便确定是否该消息是我们所关 

心的上下控件发出的。接下来用语句  



if(pSpin==&m_Spin2)  



进行判断。在确知该消息是由特定的上下控件发出的后,语句  



m_Buddy2。SetWindowText(szColors'pSpin…》GetPos()');  



对编辑框中的文本进行了更新。先用上下控件的成员函数GetPos取得 

其位置,然后用函数SetWindowText重新设定编辑框中的文本 

 (szColors' '为预先设定的一枚举数组)。  



    



  l 注意:  



  l 以上设定范围、关联窗口、位置 (还有没有在上文提到的加速设 

   置)动作,都有相应的获取函数 :例如GetBuddy函数对应于 

   SetBuddy等。读者有兴趣可以参考系统的技术支持部分。  


…………………………………………………………Page 291……………………………………………………………

         第六章 使用Windows标准控件  



我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对 

话框或其它窗口中充当与用户交互的元素。在Visual  C++中,可以使 

用的控件分成三类:  



   (1) Windows标准控件  



Windows标准控件由Windows操作系统提供,在Windows  95中还提供了 

一些新增的控件。所有这些控件对象都是可编程的,我们可以使用 

Visual   C++提供的对话框编辑器把它们添加到对话框中。Microsoft 

基础类库 (MFC)提供了封装这些控件的类,它们列于表6。1。  



                   表6。1 Windows标准控件  



        控件     MFC类       描述  



        动画     CAnimateCtrl  显示连续的AVI视频剪辑  



        按钮     CButton    用来产生某种行为的按钮,以及 

                          复选框、单选钮和组框  



        组合框    CboBox  编辑框和列表框的组合  



        编辑框    CEdit      用于键入文本  



        标题头    CHeaderCtrl  位于某一行文本之上的按钮,可 

                          用来控制显示文件的宽度  



        热键     CHotKeyCtrl  用于通过按下某一组合键来很快 

                          的执行某些常用的操作  



        图象列表   CImageList  一系列图象(典型情况下是一系 

                          列图标或位图)的集合。图象列 

                          表本身不是一种控件,它常常是 

                          和其它控件一起工作,为其它控 

                          件提供所用的图象列表  



        列表     CListCtrl  显示文本及其图标列表的窗口  



        列表框    CListBox   包括一系列字符串的列表  



        进度     CProgressCtrl  用于在一较长操作中提示用户所 

                          完成的进度  



        多格式文   CRichEditCtrl  提供可设置字符和段落格式的文 

        本编辑               本编辑的窗口  


…………………………………………………………Page 292……………………………………………………………

         滚动条      CScrollBar   为对话框提供控件形式的滚动条  



         滑块       CSliderCtrl  包括一个有可选标记的滑块的窗 

                               口  



         旋转按钮     CSpinButtonCtrl  提供一对可用于增减某个值的箭 

                               头  



         静态文本     CStatic      常用于为其它控件提供标签  



         状态条      CStatusBarCtrl   用于显示状态信息的窗口,同 

                               MFC类CStatusBar类似  



                                                        续表6。1 



         控件        MFC类       描述  



         选项卡       CTabCtrl   在选项卡对话框或属性页中提供 

                              具有类似笔记本中使用的分隔标 
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!