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

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

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






// 。。。  



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   在选项卡对话框或属性页中提供 

                              具有类似笔记本中使用的分隔标 

                              签的外观的选项卡  



         工具条       CToolBarCtrl  具有一系列命令生成按钮的窗 

                              口,同MFC类CToolBar类似  



         工具提示      CToolTipCtrl  一个小的弹出式窗口,用于提供 

                              对工具条按钮或其它控件功能的 

                              简单描述  



         树         CTreeCtrl  用于显示一系列的项的继承结构  



前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它 

也是所有控件类的基类。Windows标准控件在以下环境下提供:  



  l Windows 95  



  l Windows NT 3。51及以后版本  



  l Win32s 1。3  



  l 注意:  



  l Visual C++ 4。2及以后版本不再支持Win32s。  



    



    (2) ActiveX控件  


…………………………………………………………Page 293……………………………………………………………

ActiveX控件可用于对话框中,也可用于HTML文档中。这种控件过去 

被称为OLE控件。本书将在专门的章节中来讲述关于ActiveX控件的知 

识。这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实 

现方法。  



   (3) 其它MFC控件类  



除了Windows标准控件和自己编写的或者来自于第三方软件开发商的 

ActiveX控件以外,MFC还提供了另外三种控件,它们由下面的三个类 

进行封装:  



  l 类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多 

   可以包括四个位图图片,分别代表按钮的四种不同状态。  



  l 类CCheckListBox用于创建选择列表框,这种列表框中的每一项前 

   面有一个复选框,以决定该项是否被选中。  



  l 类CDragListBox用于创建一种特殊的列表框,这种列表框允许用 

   户移动列表项。  



在本章我们仅讲述第一类控件,即Windows标准控件。所涉及的内容 

包括各个控件的使用及相应的技巧。  



        第一节 使用对话框编辑器和ClassWizard  



对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它 

们添加到对话框中。  



                                   



              图6。 1 在ResourceView中选择对话框  

                  IDD_DIALOGDEMO_DIALOG  


…………………………………………………………Page 294……………………………………………………………

                                         



                 图6。 2 控件的Properties对话框  



                             



              图6。 3 对话框编辑器的Controls工具窗口  



在下面的过程中,我们将一个编辑框控件添加到在第四章创建的基于 

对话框的MFC框架应用程序的主对话框窗口中。  



1。   首先,在Workspace窗口的ResourceView选项内双击DialogDemo  

resourcesDialog节点下的IDD_DIALOGDEMO_DIALOG图标。上面的操 

作如图所示。  



2。   用鼠标选中标有 “要做……”的静态文本控件。右击鼠标,从上 

下文菜单中选择Properties,打开如图6。2所示的对话框,在Caption 

文本框中输入新的控件文本: “在下面的文本框中输入一些字符”, 

然后将静态文本控件拖动到对话框的左上角。  



3。   从Controls工具窗口(如图6。3所示,如果在你的资源编辑器中看 

不到该工具窗口,可以在工具条上右击鼠标,从上下文菜单中选择 

Controls)中选择编辑控件图标       ,在对话框中绘制一个编辑框控 

件,如图6。4所示。  



在该编辑框控件的Properties窗口的General选项卡中输入其ID为 

IDC_EDIT。然后在Styles选项卡下将Multiline复选框划上勾,并消 

除Auto HScroll复选框前的勾。  



4。  右击该编辑框控件,从上下文菜单中选择ClassWizard命令,打开 

ClassWizard对话框,该对话框看起来如图6。5所示。  


…………………………………………………………Page 295……………………………………………………………

                                      



                图6。 4 向对话框中添加一个编辑框控件  



                                                   



                    图6。 5 ClassWizard对话框  



单击Member             Variables选项卡,确信在Project处选择了 

DialogDemo,在Class  name处选择了CDialogDemoDlg。现在我们为刚 

才添加的编辑框控件IDC_EDIT添加一个数据映射入口。在Control  

IDs处选择IDC_EDIT,单击右边的Add  Viable按钮。打开如图6。6所示 

的对话框。  



在Member variable name处链接变量名m_strEdit  (这里m表示该变量 

为类CDialogDemoDlg的一个成员变量,str表明其类型为字符串,即 

类CString),在Category下拉列表中选择Value              (另一种选择是 

Control,两种选择的不同将在后面的内容中讲述),在Variable  

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