怎样在mfc列表控件中加入进度条
1.从简单易用角度讲,用Dialog比较好。单文档的话,楼主可能找不到吧控件拖到哪里去。而且单文档有框架类和视图类,要在视图类里改,不要在框架类里面改。
2.Dialogue的话,看你的需要了。在controls框里面拖一个列表控件。然后用classwizard添加一个control型成员m_list。对控件的操作,可以通过操作这个成员来实现。
3.楼主会发现,有3个类,一个是aboutdlg,这个是显示版本信息的对话框,不用管。
一个是C**App类,是应用程序类,程序就是从这里执行的,对于现在的问题,可以不用管。
还有一个是C**Dlg类,这个就是我们的dialogue窗口类,就修改这里。
4.这个类里面好多函数,如果楼主希望在对话框弹出来时就有列表控件出现,并分好格子,那么,要修改它的成员函数OnInitDialog。这个函数看名字就知道是初始化对话框的。
可以在这个里面操作m_list成员,来调整列表控件。
5.操作的具体过程呢,我这里不写太详细,说的多了反而影响学习,楼主可以自己看MSDN里面CListCtrl的成员函数,不难,找几个看的懂的试下就知道了,我也写几个:
GetItemText()得到一个条目的文本
SetItemTex:设置一个条目的文本
InsertItem:插入一个新条目
DeleteItem:删除一个新条目
等等,等等,说不尽啊,请自己看一下,不难的。
6.说到list控件,脑子里一下子出现好多东西,如在列表里面加个check功能,改个颜色,放个按钮,进度条等等,哎呀,太多了,不知道从何说起。
7.很多VC,mfc方面的书,都会在一开始描述控件的使用,楼主可以随便找一本,或者网上下一本,一步一步跟着做一次,这个东西就不会陌生了。楼主这个阶段,可能看MSDN比较困难,因为,毕竟还不是很了解VC里面MFC的各种结构,建议找本书看,入门的话,推荐孙鑫的《VC++深入详解》带视频的。
8.有问题可以发消息给我。我一般中午,晚上会在线2个小时解答问题
如何用C语言实现进度条
第一种,用printf模拟输出百分比,在控制台输出,实现进度监控。代码:#include#define N 20void mBar(float fBar){ int i,j,k,m; for ( i=0;i<N+6;i++ ) printf("\b"); k=N*fBar; m=fBar*100; printf("["); for ( i=0;i<k;i++ ) printf("="); for ( j=0;j<N-k;j++ ) printf(" "); printf("]%3d%%",m); }void delay(int n) { int i,j,k; for ( i=0;i<n;i++ ) for ( j=0;j<0x07fff;j++ ) k++; }void main(){ float x; int i; for ( i=0,x=0;i<100;i++,x+=0.01 ) { mBar(x); delay(1024); } mBar(1);}第二种,使用窗口组件。这个要看程序工作环境,纯粹的c语言是无法实现的。可以使VC++。Visual C++中的MFC类提供了标准的进度指示器控件(CProgressCtrl)。m_progress->GetPos(); //获取进度条的当前位置 m_progress->GetRange(int min,int max); //获取进度条控件的范围的下限和上限 m_progress->OffsetPos(int nPos); //用指定的增量推进进度条控件的当前位置,重绘进度条反映新位置 m_progress->SetBkColor(COLORREF clrNew); //设定进度条的背景颜色 m_progress->SerPos(int nPos); //设定进度条控件的当前位置,重绘进度条反映新位置 m_progress->SetRange(int min,int max); //设定进度条控件的范围的下限和上限 m_progress->SetRange32(int min,int max); //设定进度条控件的范围的下限和上限m_progress->SetStep(int nStep); //指定进度条控件的步进增量 m_progress->StepIt(); //通过步进增量,推进进度条控件的当前位置,重绘进度条反映新位置 应用: CProgressCtrl *m_progress; //头文件中声明在OnInitDialog初始化 { m_progress = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1); m_progress->SetRange(0,1000); m_progress->SetPos(0); UINT m_timer =(UINT) SetTimer(1,200,NULL); } 采用在定时器的消息处理函数WM_TIMER内添加不断更新进度条界面的方法 OnTimer (nIDEvent) { pos = pos + 50; if(pos>500) pos = 0; m_Progress->SetPos(pos); } 或者采用在某种循环体内添加不断更新进展条界面的方法
mfc中什么控件上可以画进度条
1.从简单易用角度讲,用Dialog比较好。单文档的话,楼主可能找不到吧控件拖到哪里去。而且单文档有框架类和视图类,要在视图类里改,不要在框架类里面改。
2.Dialogue的话,看你的需要了。在controls框里面拖一个列表控件。然后用classwizard添加一个control型成员m_list。对控件的操作,可以通过操作这个成员来实现。
3.楼主会发现,有3个类,一个是aboutdlg,这个是显示版本信息的对话框,不用管。
一个是C**App类,是应用程序类,程序就是从这里执行的,对于现在的问题,可以不用管。
还有一个是C**Dlg类,这个就是我们的dialogue窗口类,就修改这里。
4.这个类里面好多函数,如果楼主希望在对话框弹出来时就有列表控件出现,并分好格子,那么,要修改它的成员函数OnInitDialog。这个函数看名字就知道是初始化对话框的。
可以在这个里面操作m_list成员,来调整列表控件。
5.操作的具体过程呢,我这里不写太详细,说的多了反而影响学习,楼主可以自己看MSDN里面CListCtrl的成员函数,不难,找几个看的懂的试下就知道了,我也写几个:
GetItemText()得到一个条目的文本
SetItemTex:设置一个条目的文本
InsertItem:插入一个新条目
DeleteItem:删除一个新条目
等等,等等,说不尽啊,请自己看一下,不难的。
6.说到list控件,脑子里一下子出现好多东西,如在列表里面加个check功能,改个颜色,放个按钮,进度条等等,哎呀,太多了,不知道从何说起。
7.很多VC,mfc方面的书,都会在一开始描述控件的使用,楼主可以随便找一本,或者网上下一本,一步一步跟着做一次,这个东西就不会陌生了。楼主这个阶段,可能看MSDN比较困难,因为,毕竟还不是很了解VC里面MFC的各种结构,建议找本书看,入门的话,推荐孙鑫的《VC++深入详解》带视频的。