《Visual C++ NET案例设计教程》-学习情境四  控件的使用_第1页
《Visual C++ NET案例设计教程》-学习情境四  控件的使用_第2页
《Visual C++ NET案例设计教程》-学习情境四  控件的使用_第3页
《Visual C++ NET案例设计教程》-学习情境四  控件的使用_第4页
《Visual C++ NET案例设计教程》-学习情境四  控件的使用_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

学习情境四控件的使用任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面任务二使用编辑框、列表框、组合框设计商品购买界面任务三使用列表视图、树形视图控件设计资源管理器界面任务四使用旋转按钮、进度条、滑块设计文件移动或拷贝界面返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面子任务1按钮(Button)控件知识导读按钮控件是Windows应用程序中最常见的控件之一。常见的按钮有确定、取消、QQ登录等。本子任务主要介绍如何添加按钮,以及利用按钮控件变量和消息响应函数来完成应用程序的操作。知识点详解1.按钮控件的主要属性按钮控件是在程序开发过程中经常使用的控件,当按钮控件被按下时会立即执行某个命令,所以也称为命令按钮。选择按钮控件,在属性窗口中设置按钮控件的属性。按钮控件的主要属性如下:下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面(1)Bitmap:指定按钮显示位图而非文本。(2)Caption:指定由按钮显示的文本。(3)Icon:指定按钮显示图标而非文本。(4)HorizontalAlignment:水平方向设置文本的对齐方式。(5)VerticalAlignment:垂直方向设置文本的对齐方式。2.按钮控件的主要函数(1)GetState函数。UINTGetState()const;该函数用于返回按钮的当前状态。返回值为返回按钮的状态,可选值如下:上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面①BST_CHECKED:按钮被选中;①BST_CHECKED:按钮被选中;②BST_UNCHECKED:按钮没有被选中;③BST_FOCUS:按钮获得焦点;④BST_INDETERMINATE:按钮处于灰色状态;⑤BST_PUSHED:按钮处于高亮状态。(2)SetState函数。voidSetState(BOOLbHighlight);该函数用于设置按钮状态。bHighlight:标识按钮是否高亮显示。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面(3)GetButtonStyle函数。UINTGetButtonStyle()const;该函数用于返回按钮风格。(4)SetButtonStyle函数。voidSetButtonStyle(UINTnStyle,BOOLbRedraw=TRUE);该函数用于设置按钮风格。①nStyle:按钮的风格。②bRedraw:是否重画按钮。TRUE,重画;FALSE,不重画。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面(5)SetIcon函数。HICONSetIcon(HICONhIcon);该函数用于关联一个图标到按钮控件上。图标将自动地绘制在控件上。hIcon:一个图标句柄。返回值:返回图标句柄,如果控件没有关联图标,则返回值为NULL。(6)GetIcon函数。HICONGetIcon()const;该函数用于获取当前控件关联的图标句柄,如果控件没有关联图标,返回值为NULL。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面(7)GetBitmap函数。HBITMAPGetBitmap()const;该函数用于获取当前控件关联的位图句柄,如果控件没有关联的句柄,返回值为NULL。(8)SetBitmap函数。HBITMAPSetBitmap(HBITMAPhBitmap);该函数用于将一个位图关联到按钮控件中。位图自动地被绘制在控件中,如果位图过大,它将被剪裁。①hBitmap:位图句柄。②返回值:按钮控件之前关联的位图句柄。如果控件在调用SetBitmap函数之前没有关联的位图,则返回值为NULL。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面(9)GetCursor函数。HCURSORGetCursor();该函数用于获取控件当前关联的鼠标指针句柄。如果控件没有关联鼠标指针句柄,返回值为NULL。(10)SetCursor函数。HCURSORSetCursor(HCURSORhCursor);该函数用于设置关联控件的鼠标指针形状。①hCursor:鼠标指针句柄。②返回值:控件之前关联的鼠标指针句柄,如果控件之前没有关联鼠标指针,返回值为NULL。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面3.按钮控件的主要事件(1)BN_CLICKED:在用户单击一个按钮时产生。按钮父窗口通过WM_COMMAND消息接收该通知消息。(2)BN_DOUBLELCLICKED:在用户双击一个按钮时产生。子任务2单选按钮控件单选按钮控件(RadioButton)也属于按钮的一种,可以分组使用。使用单选按钮控件同样可以简化用户的操作。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面在使用单选按钮时,有时因为不同的需要会把单选按钮分为几组,使每一组中只有一个处于选中状态。在默认情况下,所有单选按钮都被视为一组。要为单选按钮分组,可以将杂项属性中的Group属性设置为True,设置的时候,只要将第一个按钮的Group属性选中,后续单选按钮不选择属性即可。从第一个被选中Group属性的单选按钮开始,到出现其他被选择该属性的单选按钮之前,所有的该类控件都被归为一组。按快捷键“Ctrl+D”后,设计界面会显示控件的顺序。被分为一组的单选按钮可以共用一个成员变量。上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面子任务3复选框控件复选框控件(CheckBox)也属于按钮的一种,是Windows提供的又一种很但是使用的时候不需要像单选按钮那样进行分组。可以使用复选按钮,从一组选项中选择一个选项或多个选项,各个选项之间的选中状态互不相关。可以利用复选框来解决多项选择的问题。复选按钮的常用函数如下:1.SetCheck函数该函数用于设置复选框是否处于选中的状态。voidSetCheck(intnCheck);其中,nCheck表示复选框的状态。常见的按钮,上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面2.GetCheck函数该函数用于获得控件的选中状态。intGetCheck()const;返回值为复选框的选择状态。子任务4设计调查问卷界面本子任务使用按钮控件、单选按钮、复选按钮控件设计网络游戏调查问卷界面。示例ex04_04:网络游戏调查问卷界面上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面【实现步骤】步骤1创建一个基于对话框的MFC程序,在对话框上面拖放一个名称为“网络游戏调查问卷”的静态文本,然后添加6个单选按钮。前2个单选按钮分为一个组,为其添加int类型的变量m_Radio。后4个单选按钮分为一个组,为其添加int类型的变量m_Radio1。步骤2在对话框上面拖放一个分组框控件(GroupBox),然后在分组框中拖放三个复选按钮,最后拖放一个“提交”按钮(其ID为:IDC_BUTTON_SUBMIT)。步骤3双击“提交”按钮,在Cex04_4Dlg::OnBnClickedButtonSubmit()函数中输入以下代码:上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面voidCex04_4Dlg::OnBnClickedButtonSubmit(){//TODO:在此添加控件通知处理程序代码CStringstr1,str2,str3;CStringstr="您的选择是:";UpdateData(TRUE);GetDlgItem(IDC_RADIO1+m_Radio)->GetWindowText(str1);//获取文本GetDlgItem(IDC_RADIO3+m_Radio1)->GetWindowText(str2);//获取文本for(inti=0;i<3;i++){上一页下一页返回任务一使用按钮控件,单选按钮、复选按钮控件设计调查问卷界面CButton*btn=(CButton*)GetDlgItem(IDC_CHECK1+i);if(btn->GetCheck()){btn->GetWindowText(str3);//获取文本str=str+str3+“”;//重载加法运算符}}str=str1+'\n'+str2+'\n'+str;MessageBox(str,_T("选择内容"),MB_OK);}程序运行结果如图4-8和图4-9所示。上一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面子任务1编辑框(EditControl)控件知识导读编辑框控件又称文本框,也是在程序开发过程中经常使用的控件,通常编辑框控件与静态文本一起使用,用于数据的输入或输出。掌握编辑框的常用操作是学习VC++必不可少的一步。编辑框控件提供了完整的键盘输入和编辑功能,可以输入各种文本、数值或密码,并可以进行剪切、粘贴等操作,当一个编辑框控件获得焦点时,框内会出现一个闪动的插入符。知识点详解1.编辑框控件的主要函数(1)Create函数。下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面Create函数用于创建编辑框,并将编辑框关联到CEdit对象上。BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);①dwStyle:用于设置控件风格。②Rect:用于确定控件的显示区域。③pParentWnd:用于确定控件父窗口指针。④nID:用于设置控件ID。(2)SetSel函数。该函数用于设置选中的文本。voidSetSel(DWORDdwSelection,BOOLbNoScroll=FALSE);上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面voidSetSel(intnStartChar,intnEndChar,BOOLbNoScroll=FALSE);SetSel函数的参数如下:①dwSelection:低字节标识起始位置,高字节标识结束位置。如果起始位置为0,结束位置为-1,则所有文本被选中。②nStartChar:标识起始位置。③nEndChar:标识结束位置。④bNoScroll:确定插入符是否被滚动到可视区域,如果为FALSE,表示插入符滚动到可视区域,否则插入符不滚动到可视区域。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面(3)SetPasswordChar函数。该函数用于设置字符密码。voidSetPasswordChar(TCHARch);ch:标识密码字符,如果设置为0,实际字符将被显示。2.编辑框控件的主要事件(1)EN_CHANGE:编辑框中文本更新后产生。(2)EN_ERRSPACE:编辑框无法分配内存时产生。(3)EN_HSCROLL:单击编辑框水平滚动条时产生。(4)EN_MAXTEXT:当编辑框控件不具有AutoHscroll属性,且输入的字符超过编辑框的宽度时产生,或者当编辑框控件不具有AutoVScroll属性,且输入的字符超过编辑框的高度时产生。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面(5)EN_VSCROLL:单击编辑框垂直滚动条时产生。子任务2列表框(ListBox)控件列表框控件显示了一个可选择的列表,它允许用户从所列出的表项中进行单项或多项选择,被选择的项呈高亮度显示。可以通过列表框来查看或选择数据项,当列表框中的项数较多时可以激活滚动条来显示。用户可以选择其中一项或多项,当列表中的列表项数超过列表框的高度时,控件自动计划垂直滚动条来显示列表项。列表框分单选列表框和多重选择列表框两种。单选列表框一次只能选择一个列表项,而多重选择列表框可以进行多重选择。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面1.列表框控件的主要函数1)GetText函数该函数用于从列表框中获取一个字符串。intGetText(intnIndex,LPTSTRlpszBuffer)const;voidGetText(intnIndex,CString&rString)const;(1)nIndex:标识项目索引。(2)lpszBuffer:一个字符缓冲区,该缓冲区必须有足够的空间接收字符串。(3)rString:用于接收返回的字符串。返回值:实际返回的字符串长度。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面2)AddString函数该函数用于向列表框中添加字符串。intAddString(LPCTSTRlpszString);lpszString:标识字符串指针。3)GetCount函数该函数用于获取列表框中的项目数。intGetCount()const;4)DeleteString函数该函数从列表框中删除一个字符串。intDeleteString(UINTnIndex);(1)nIndex:标识列表框中的项目索引。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面(2)返回值:列表框中字符串的数量。2.列表框控件的主要事件(1)LBN_SELCHANGE:当列表框中的选项被改变时触发该消息。(2)LBN_DBLCLK:当用户双击列表框中的字符串时触发该消息。(3)LBN_ERRSPACE:当列表框不能分配足够的空间时触发该消息。(4)LBN_KILLFOCUS:当列表框失去焦点时触发该消息。(5)LBN_SELCANCEL:当用户取消了列表框中选中的选项时触发该消息。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面(6)LBN_SETFOCUS:当列表框获得焦点时触发该消息。3.列表框控件的部分属性(1)选择Sort后,列表框中的数据会自动排序。(2)选择Verticalscroll可实现在数据多时添加垂直滚动条。(3)选择Notify即可接收通告消息。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面子任务3组合框(ComboBox)控件编辑框允许用户输入新的文本,但用户却不能直接选择以前已输入的文本;而列表框恰恰相反,允许用户直接选择以前输入的文本,却不允许用户输入新的文本。组合框吸收了两者的优点,实质上,组合框是一个编辑框和一个列表框的组合。组合框具有简单(Simple)、下拉(Dropdown)和下拉列表(DropList)3种形式,可以通过外观属性的Type属性进行设置。简单组合框包含一个编辑框和一个总是显示的列表框。列表框总是可见的,被选中的列表项显示在编辑框内;下拉组合框和下拉列表框都是在单击下拉箭头后才弹出列表框,其区别在于前者的编辑框可以编辑,后者的编辑框是只读的。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面在对话框中先选中组合框控件,然后单击组合框中的三角箭头,此时将弹出一个虚拟边框,利用鼠标向下拖动虚边框,将其调整到适当大小。1.组合框控件的主要函数1)GetTopIndex函数该函数返回列表框中第1个可见项目的索引。intGetTopIndex()const;2)SetTopIndex函数该函数将某一项设置为列表中的可见项。intSetTopIndex(intnIndex);nIndex:标识列表框中的选项。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面3)GetLBText函数该函数用于获取列表框中的字符串。返回值为返回值为字符串长度,不包括空结束符(\n)。intGetLBText(intnIndex,LPTSTRlpszText)const;voidGetLBText(intnIndex,CString&rString)const;(1)nIndex:表示函数返回的项目索引(基于0开始)。(2)lpszText:标识一个缓冲区指针,该指针必须有足够的空间接收字符串。(3)rString:用于接收返回的字符串。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面2.组合框控件的主要事件(1)CBN_EDITCHANGE:在组合框中的编辑框文本改变时产生。(2)CBN_CLOSEUP:在组合框中的列表框关闭时产生。(3)CBN_SELENDCANCEL:在用户选择一个字符串后,接着又选择了其他控件或关闭对话框时产生。(4)CBN_SELENDOK:在用户选择了一个列表框中的字符串或者选择一个字符串后又关闭了列表框时产生。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面子任务4设计商品购买界面本子任务使用编辑框、列表框、组合框设计商品购买界面。示例ex04_08:设计商品购买界面。【实现步骤】步骤1创建一个基于对话框的MFC项目,向对话框拖放如图4-13所示的控件。步骤2为编辑框关联CString类型的变量m_Serch;为列表框关联CListBox类型的变量m_List;为组合框关联CComboBox类型的变量m_Combo,修改其ID为:IDC_EDIT_SEARCH;“搜索”按钮的ID改为:IDC_BUTTON_SEARCH;“购买”按钮的ID改为:IDC_BUTTON_BUY。上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面步骤3在OnInitDialog函数中添加如下代码:BOOLCex04_8Dlg::OnInitDialog(){……………//TODO:在此添加额外的初始化代码m_Combo.AddString(_T("笔记本"));//添加数据到组合框m_Combo.AddString(_T("超极本"));m_Combo.AddString(_T("游戏本"));m_Combo.AddString(_T("平板电脑"));m_Combo.SetCurSel(0);//设置组合框默认显示的数据m_List.AddString(_T("联想"));上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面m_List.AddString(_T("戴尔"));m_List.AddString(_T("宏碁"));………………..

}步骤4双击“购买”按钮,为其添加消息响应函数,代码如下:voidCex04_8Dlg::OnBnClickedButtonBuy(){//TODO:在此添加控件通知处理程序代码CStringgoods,brand,str;inti=m_Combo.GetCurSel();//获取组合框选中项的下标m_Combo.GetLBText(i,goods);//获取组合框选中项的文本上一页下一页返回任务二使用编辑框、列表框、组合框

设计商品购买界面intj=m_List.GetCurSel();//获取列表框选中项的下标m_List.GetText(j,brand);//获取列表框选中项的文本str=goods+'\n'+brand;MessageBox(str,"您选择的商品");}步骤5双击“搜索”按钮,为其添加消息响应函数,代码如下:voidCex04_8Dlg::OnBnClickedButtonSearch(){//TODO:在此添加控件通知处理程序代码UpdateData();MessageBox("您查找的商品为:"+m_Search);}上一页返回任务三使用列表视图、树形视图控件设计资源管理器界面子任务1列表视图控件(ListControl)知识导读列表视图控件有着广泛的应用,它可以以视图项的形式显示数据,也可以以二维表的形式显示数据。如同在Windows的Explorer中一样,列表控件可以控制列表内容的显示方式,并能够以图标和表格的形式显示数据。因此在开发程序时,经常使用列表控件。本部分将介绍列表控件的主要属性、方法及其应用。知识点详解1.列表视图控件的主要属性列表视图框控件的主要属性见表4-1。下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面2.列表视图控件的主要方法1)Creat方法该方法用于创建列表窗口。BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);(1)dwStyle:标识列表的风格。(2)rect:确定列表的显示区域。(3)pParentWnd:标识父窗口指针。(4)nID:标识列表控件ID。2)SetImageList方法该方法设置列表控件关联的图像列表。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面CImageList*SetImageList(CImageList*pImageList,intnImageList);(1)pImageList:标识图像列表指针。(2)nImageList:标识图像列表类型,可选值如下:①LVSIL_NORMAL:图像列表具有大图标。②LVSIL_SMALL:图像列表具有小图标。③LVSIL_STATE:图像列表具有状态图像。3)GetItemText方法该方法用于获得视图项的文本。intGetItemText(intnItem,intnSubItem,LPTSTRlpszText,intnLen)const;CStringGetItemText(intnItem,intnSubItem)const;上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面(1)nItem:标识行索引。(2)nSubItem:标识列索引。(3)lpszText:用于记录视图项文本。(4)nLen:标识lpszText的长度。4)InsertItem方法该方法用于向列表控件中添加视图项。其语法如下:intInsertItem(constLVITEM*pItem);intInsertItem(intnItem,LPCTSTRlpszItem);intInsertItem(intnItem,LPCTSTRlpszItem,intnImage);intInsertItem(UINTnMask,intnItem,LPCTSTRlpszItem,UINTnState,UINTnStateMask,上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面intnImage,LPARAMlParam);参数说明见表4-2。3.列表视图控件的主要事件(1)NM_CLICK:单击列表控件时产生。(2)NM_DBLCLK:双击列表控件时产生。(3)LVN_COLUMNCLICK:单击列表列标题时产生。(4)LVN_ITEMCHANGED:当列表中的数据改变后产生。(5)LVN_ITEMCHANGING:当列表中的数据改变时产生。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面子任务2树形视图控件(TreeControl)知识导读树形视图控件在Windows系统中是很常见的,例如资源管理器左侧的窗口中就有用来显示目录的树形视图。树形视图中以分层结构显示数据,每层的缩进不同,层次越低缩进越多。树形控件的节点一般都由标签和图标两部分组成,图标用来抽象的描述数据,这能够使树形控件的层次关系更加清晰。树视图控件以节点为单位显示数据,每一个节点(根节点除外)可以有一个父节点,多个子节点,这样便形成了一个阶梯形的树状结构。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面知识点详解1.树形视图控件的主要属性树形视图控件主要属性见表4-5。2.树形视图控件的主要方法1)SetImageList方法该方法用于设置树形视图控件关联的图像列表控件。CImageList*SetImageList(CImageList*pImageList,intnImageListType);(1)pImageList:标识图像列表控件指针。(2)nImageListType:标识图像列表类型。2)GetNextItem方法该方法根据当前节点获取下一个节点。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面HTREEITEMGetNextItem(HTREEITEMhItem,UINTnCode);(1)hItem:当前节点句柄。(2)nCode:标识如何查找下一个节点。3)GetChildItem方法该方法用于获得指定节点的子节点。返回值为子节点句柄。HTREEITEMGetChildItem(HTREEITEMhItem);hItem:标识一个节点句柄。4)GetItemText方法该方法用于获取节点文本。返回值为节点文本。CStringGetItemText(HTREEITEMhItem)const;hItem:标识节点句柄。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面5)InsertItem方法该方法用于插入节点。HTREEITEMInsertItem(LPTVINSERTSTRUCTlpInsertStruct);HTREEITEMInsertItem(UINTnMask,LPCTSTRlpszItem,intnImage,intnSe⁃lectedImage,UINTnState,UINTnStateMask,LPARAMlParam,HTREEITEMhParent,HTREEITEMhInsertAfter);HTREEITEMInsertItem(LPCTSTRlpszItem,HTREEITEMhParent=TVI_ROOT,HTREEITEMhInsertAfter=TVI_LAST);HTREEITEMInsertItem(LPCTSTRlpszItem,intnImage,intnSelectedIm⁃age,上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面HTREEITEMhParent=TVI_ROOT,HTREEITEMhInsertAfter=TVI_LAST);InsertItem方法的参数见表4-6。6)Expand方法该方法用于展开或收缩节点。BOOLExpand(HTREEITEMhItem,UINTnCode);(1)hItem:标识展开的节点句柄。(2)nCode:确定展开的动作。3.树形视图控件的主要事件(1)NM_CLICK:当鼠标单击树形视图控件时产生。(2)NM_DBLCLK:当鼠标双击树形视图控件时产生。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面(3)TVN_ENDLABELEDIT:当编辑节点结束时产生。(4)TVN_ITEMEXPANDED:当展开或收缩节点后产生。子任务3设计资源管理器界面示例ex04_12:设计资源管理器界面。【实现步骤】步骤1在资源视图中删除“TODO”和按钮,从工具箱中添加TreeControl(左)和ListControl控件,属性Scroll(启动水平垂直滚动)、HorizontalScroll(具有水平滚动)、Transparent(透明背景)为True。上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面步骤2为列表控件添加CListCtrl类型的变量m_list;为树形视图控件添加CTreeCtrl类型的变量m_disktree。步骤3在ex4_12Dlg.h中添加如下自定义公有变量的代码:CImageListimlst;intimindex;SHFILEINFOfileinfo;步骤4为树形视图控件添加“TVN_SELCHANGED”类型的事件处理程序。自动生成成员函数OnTvnSelchangingTree(NMHDR∗pNMHDR,LRESULT∗pResult),添加代码如下:上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面voidCTreeShowDlg::OnSelchangedTree(NMHDR*pNMHDR,LRESULT*pResult){//LPNMTREEVIEWpNMTreeView=reinterpret_cast(pNMHDR);//TODO:在此添加控件通知处理程序代码NM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR;CFileFindfilefd;HTREEITEMparent;HTREEITEMrootitem=m_disktree.GetSelectedItem();if(m_disktree.GetChildItem(rootitem))return;上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面parent=rootitem;CStringrootstr=m_disktree.GetItemText(rootitem);CStringtemp;CStringlstr;if(rootstr.Find("\\")==2){lstr.Format("%s*.*",rootstr);}Else上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面{CStringstrparent;while(1){parent=m_disktree.GetParentItem(parent);strparent=m_disktree.GetItemText(parent);if(strparent.Find("\\")==2)gotoend;temp+=strparent;temp+="\\";}

上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面end:CStringroot=m_disktree.GetItemText(parent);lstr.Format("%s%s%s\\*.*",root,temp,rootstr);}BOOLbfinded=filefd.FindFile(lstr);while(bfinded){bfinded=filefd.FindNextFile();CStringfilepath;if(filefd.IsDirectory()&&!filefd.IsDots()){SHGetFileInfo(filefd.GetFilePath(),0,&fileinfo,sizeof(filein⁃fo),

上一页下一页返回任务三使用列表视图、树形视图控件设计资源管理器界面SHGFI_ICON);imindex=imlst.Add(fileinfo.hIcon);m_disktree.InsertItem(filefd.GetFileName(),imindex,imindex,rootitem);}}*pResult=0;}运行结果如图4-17所示。上一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面子任务1旋转按钮控件(SpinControl)知识导读旋转按钮控件也称为上下控件,其主要功能是利用一对标有相反方向箭头的小按钮,通过单击该按钮,在一定范围内改变当前的数值。旋转按钮控件的当前值通常显示在一个称为伙伴窗口的控件中,可以是编辑框等。知识点详解一个旋转按钮控件可以自动定位在它的伙伴窗口的旁边,看起来就像一个单一的控件。通常,将一个旋转按钮控件与一个编辑控件一起使用,以提示用户进行数字输入。下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面单击向上箭头使当前位置向最大值方向移动,而单击向下箭头使当前位置向最小值的方向移动。缺省时,最小值是100,最大值是0,当用户单击向上箭头则减少数值,而单击向下箭头则增加它,这看起来就像颠倒一样,因此还需使用成员函数CSpinButtonCtrl::SetRange来改变最大和最小值。1.旋转按钮控件的常用风格(表4-7)2.旋转按钮控件的方法1)SetBase方法intSetBase(intnBase);该方法用来设置其基数。2)GetBase方法UINTGetBase()const;上一页下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面该方法获取一个旋转按钮控件的基数的成员函数。3)SetPos方法intSetPos(intnPos);该方法用来设置一个旋转按钮控件的当前位置和范围。子任务2进度条控件(ProgressControl)知识详解进度条控件是程序开发中的基础控件之一,主要用来进行数据读写、文件拷贝和磁盘格式化等操作时的工作进度提示,如程序安装、文件传输等。伴随着工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题栏的颜色不断填充。上一页下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面知识点1.进度条控件的主要方法1)SetRange方法该方法用来设置进度条显示范围,初始范围为0~100。voidSetRange(shortnLower,shortnUpper);(1)nLower:最小值,默认为0。(2)nUpper:最大值。2)SetPos方法该方法用来设置进度条进度,初始值为0。intSetPos(intnPos);nPos:表示设置的新进度。返回值为之前的进度。上一页下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面3)GetPos方法该方法用来获得进度条的进度。intGetPos();返回值为当前显示进度。子任务3滑块控件(SliderControl)知识导读滑块控件也称为轨道条控件,其主要是通过用一个带有轨道和滑标的小窗口以及窗口上的刻度,让用户选择一个离散数据或一个连续的数值区间。滑块可以为垂直方向或水平方向。上一页下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面知识点详解1.滑块控件的风格(1)TBS_HORZ:滑块是水平方向的。(2)TBS_VERT:滑块是垂直方向的。(3)TBS_AUTOTICKS:滑块具有刻度,默认。2.滑块控件的属性(1)获得滑块大小:GetLineSize。(2)设置滑块大小:SetLineSize。(3)获得滑块的最大位置:GetRangeMax。(4)获得滑块的最小位置:GetRangeMin。上一页下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面子任务4设计文件移动或拷贝界面本子任务使用旋转按钮控件、进度条控件、滑块控件设计文件移动或拷贝界面。示例ex04_16:设计文件移动或拷贝界面。【实现步骤】步骤1创建一个基于对话框的应用程序,拖入一个进度条控件和AnimationControl控件,其ID分别为IDC_PROGRESS和IDC_ANIMATE。拖入“开始”按钮和“停止”按钮,修改其ID分别为IDC_START和IDC_STOP。上一页下一页返回任务四使用旋转按钮、进度条、滑块

设计文件移动或拷贝界面步骤2为动画控件(AnimationControl)添加CAnimateCtrl类型的变量m_animate,为进度条控件(ProgressControl)添加CProgressCtrl类型的变量m_progress。步骤3在ex4_16Dlg.cpp文件开始处添加如下代码:CEventm_begin;

//启动线程事件CEventm_end;//终止线程事件intm_count;//计数变量步骤4在ex4_16Dlg.h文件开始处添加如下代码:#defineWM_FINISHEDWM_USER+1UINTCThreadProc(LPVOIDpParam);//函数声明上一页下一

温馨提示

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

评论

0/150

提交评论