为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

组合框进度条实验

2011-03-13 5页 doc 64KB 18阅读

用户头像

is_847518

暂无简介

举报
组合框进度条实验实验四:列表框和组合框之间的数据交换 程序运行结果如图: 编程思路: (1)​ 为了使组合框和列表框在程序启动时有一个默认选项,可以使用函数SetCurSel设置默认选中项 (2)​ 列表框中单机某列表项后背景变为深蓝色则表示该项被选中 (3)​ 由于对列表框和组合框操作的函数为控件类的成员函数,因此必须分别为列表框和组合框关联控件类型的成员变量 操作步骤: (1)​ 新建MFC对话框应用程序“LCExchange” (2)​ 按上图完成界面设计 (3)​ 修改各控件的ID及按钮的标题,组合框对应的ID为IDC_COMBO,列...
组合框进度条实验
实验四:列表框和组合框之间的数据交换 程序运行结果如图: 编程思路: (1)​ 为了使组合框和列表框在程序启动时有一个默认选项,可以使用函数SetCurSel设置默认选中项 (2)​ 列表框中单机某列表项后背景变为深蓝色则表示该项被选中 (3)​ 由于对列表框和组合框操作的函数为控件类的成员函数,因此必须分别为列表框和组合框关联控件类型的成员变量 操作步骤: (1)​ 新建MFC对话框应用程序“LCExchange” (2)​ 按上图完成界面设计 (3)​ 修改各控件的ID及按钮的标题,组合框对应的ID为IDC_COMBO,列表框对应的ID为IDC_LIST,向右的按钮的ID为IDC_TORIGHT,向左的按钮对应的ID为IDC_TOLEFT。 (4)​ 分别为组合框和列表框关联控件类型的变量m_combo和m_list,然后在 (5)​ 组合框属性对话框中为组合框添加数据如下图: (6)​ 添加下面的代码: BOOL CLCExchangeDlg::OnInitDialog() {。。。。。。。 // TODO: Add extra initialization here //向列表框中添加数据记录 m_list.AddString("远芳侵古道"); m_list.AddString("晴翠接三城"); m_list.AddString("又送王孙去"); m_list.AddString("凄凄离别情"); //设置列表框和组合框的默认选项 m_list.SetCurSel(0); m_combo.SetCurSel(0); return TRUE; // return TRUE unless you set the focus to a control } (7)​ 双击向右按钮添加BN_CLICKED消息函数OnToright并加入如下代码: void CLCExchangeDlg::OnToright() { // TODO: Add your control notification handler code here int nSel=m_combo.GetCurSel();//取得当前选项的序号 if(nSel>=0) //如果组合框的列表项非空 { CString rString; m_combo.GetLBText(nSel,rString); m_combo.DeleteString(nSel); if(m_combo.GetCount()>0)//如果组合框的列表项非空 m_combo.SetCurSel(0); m_list.AddString(rString); } else AfxMessageBox("当前组合框中没有选项!"); } (8)​ 双击向左按钮添加BN_CLICKED消息函数OnToleft并加入如下代码: void CLCExchangeDlg::OnToleft() { // TODO: Add your control notification handler code here int nSel=m_list.GetCurSel();//取得当前选项的序号 if(nSel>=0) //如果组合框的列表项非空 { CString rString; m_list.GetText(nSel,rString); m_list.DeleteString(nSel); if(m_list.GetCount()>0)//如果组合框的列表项非空 m_list.SetCurSel(0); m_combo.AddString(rString); } else AfxMessageBox("当前列表框中没有选项!"); } (8)运行程序 实验五 颜色渐变器 程序运行结果如下 图: 编程思路: (1)​ 颜色用RGB()函数来设置 (2)​ 为了使进度条对应的值能逐渐增加,在程序中设置TIMER控件 操作步骤: (1)​ 创建一个MFC对话框应用程序“Color” (2)​ 按上图进行界面设计 (3)​ 进度条ID:IDC_PROGRESS_RED 滚动条ID:IDC_SCROLLBAR_GREEN (4)​ 滑动条ID:IDC_SLIDER_BLUE (5)​ 分别为进度条、滚动条和滑动条关联控件类型变量m_progressRed、m_scrollbarGreen和m_sliderBlue。 (6)​ 为对话框类CcolorDlg添加3个int型成员变量m_nRed,m_nGreen,m_nBlue,分别用来保存进度条、滚动条和滑动条的当前位置。在构造函数中添加初始化代码: CColorDlg::CColorDlg(CWnd* pParent /*=NULL*/) : CDialog(CColorDlg::IDD, pParent) { 。。。。。。。。。 m_nRed=m_nGreen=m_nBlue=0; } (7)​ 添加代码: BOOL CColorDlg::OnInitDialog() {。。。 // TODO: Add extra initialization here //设置进度条、滚动条以及滑动条的范围 m_progressRed.SetRange(0,255); m_scrollbarGreen.SetScrollRange(0,255); m_sliderBlue.SetRange(0,255); //设置进度条、滚动条以及滑动条的初始位置 m_progressRed.SetPos(m_nRed); m_scrollbarGreen.SetScrollPos(m_nGreen); m_sliderBlue.SetPos(m_nBlue); SetTimer(0,100,NULL); return TRUE; // return TRUE unless you set the focus to a control } (8)​ 为对话框类CcolorDlg映射WM_TIMER消息函数OnTimer,添加如下代码: void CColorDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default m_nRed++; if(m_nRed>255)//如果进度条值大于255,则将其重置为0 m_nRed=0; m_progressRed.SetPos(m_nRed); Invalidate(); //重画 CDialog::OnTimer(nIDEvent); } (9)为对话框类CcolorDlg映射WM_HSCROLL消息函数OnHScroll,添加如下代码: void CColorDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default int nID=pScrollBar->GetDlgCtrlID(); //取得对话框上的控件 if(nID==IDC_SCROLLBAR_GREEN)//如果是滚动条 { switch(nSBCode)//滚动条通告消息 { case SB_LINELEFT:m_nGreen--;break; case SB_LINERIGHT:m_nGreen++;break; case SB_PAGELEFT:m_nGreen-=10;break; case SB_PAGERIGHT:m_nGreen+=10;break; case SB_THUMBTRACK:m_nGreen=nPos;break; } if(m_nGreen<0) m_nGreen=0; if(m_nGreen>255) m_nGreen=255; m_scrollbarGreen.SetScrollPos(m_nGreen); } if(nID==IDC_SLIDER_BLUE)//如果是滑动条 { switch(nSBCode)//滑动条通告消息 { case TB_LINEUP:m_nBlue--;break; case TB_LINEDOWN:m_nBlue++;break; case TB_PAGEUP:m_nBlue-=10;break; case TB_PAGEDOWN:m_nBlue+=10;break; case TB_THUMBTRACK:m_nBlue=nPos;break; } if(m_nBlue<0) m_nBlue=0; if(m_nBlue>255) m_nBlue=255; m_sliderBlue.SetPos(m_nBlue); } Invalidate();//重画 CDialog::OnHScroll(nSBCode, nPos, pScrollBar); } (10)在对话框类的OnPaint()中添加如下代码: void CColorDlg::OnPaint() { if (IsIconic()) {。。。。。 } else { CPaintDC dc(this); //填充矩形区域 dc.FillSolidRect(13,140,454,145,RGB(m_nRed,m_nGreen,m_nBlue)); CDialog::OnPaint(); } } (11)运行程序
/
本文档为【组合框进度条实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索