有没有办法让clistctrl的一列变为进度条 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以, Create一个Progress控件,高度宽度同列,MoveWindow于该列的位置就可以了. 帮帮忙啊。 下面这段代码怎么不行啊??CRect rc,CellRect;m_list.GetItemRect(i,&rc,LVIR_LABEL);CellRect.bottom = rc.bottom;CellRect.top = rc.top;CellRect.right = rc.right; CellRect.left = rc.left - 360; CProgressCtrl ProgressCtrl;ProgressCtrl.Create(PBS_VERTICAL | PBS_SMOOTH, CellRect, this,0);HWND PChwnd = ProgressCtrl.GetSafeHwnd();ProgressCtrl.MoveWindow(&CellRect, TRUE); 是不是进度条被list覆盖了啊? 少了 WS_VISIBLE 风格,当然不出现,还有parent 窗口要设成list, MoveWindow函数用的坐标是基于父窗口的。改如下试试:ProgressCtrl.Create(WS_VISIBLE|PBS_VERTICAL | PBS_SMOOTH, CellRect, &m_list, 0); CProgressCtrl控件要作为对话框成员定义,不能再函数内部定义,函数执行后该控件会销毁的,仍然看不到。CProgressCtrl ProgressCtrl;这行定义要放到对话框定义中 我的新问题出现了,所以仍然显示不了。我的程序是 多线程下载,所以,我的CProgressCtrl的m_Hwnd要作为全局变量传递给线程函数,我在Cwinapp里定义了CArray<CMyProgressCtrl,CMyProgressCtrl> ProCtrlArr;//CMyProgressCtrl只是重载了operator = 和copy construct,其它没做什么。CRect rc,CellRect;m_list.GetItemRect(i,&rc,LVIR_LABEL);CellRect.bottom = rc.bottom;CellRect.top = rc.top; CellRect.right = rc.right;CellRect.left = rc.left ;//- 360CMyProgressCtrl PCtrl;theApp.ProCtrlArr.Add(PCtrl);int nB = theApp.ProCtrlArr.GetSize();theApp.ProCtrlArr.GetAt(nB-1).Create(WS_VISIBLE|PBS_VERTICAL|PBS_SMOOTH,CellRect,&m_list,0);HWND PChwnd = theApp.ProCtrlArr.GetAt(nB-1).GetSafeHwnd();但是::IsWindow(PChwnd)老是返回为0 , 问题出在哪里呢? 去www.codeproject.com去看看那个xListCtrl的代码吧. CMyProgressCtrl PCtrl;是局部变量,出了这个函数就销毁了。 在单文档程序,点击不同的菜单项,在视图中显示不同的窗体,怎么实现 GDI有些系统泄露,有些不会!有遇到这种情况的进,求指教~! 输入注册码注册怎么做? 如何得到一个网页上Table元素里面cell元素的超链接信息 关与far???的问题 AfxMessageBox(_T())是什么意思?? VC++6.0企业版应该再安装哪些补丁? 我想用ADO以快照形式打开数据库,要使用什么参数啊? 有谁知道啊! 如何通过ID得到控键的指针? vc中 怎样把 .xls 文件 转化成 .dat文件? 怎样使CScrollBar随着client的区域变化
CRect rc,CellRect;
m_list.GetItemRect(i,&rc,LVIR_LABEL);
CellRect.bottom = rc.bottom;
CellRect.top = rc.top;
CellRect.right = rc.right;
CellRect.left = rc.left - 360;
CProgressCtrl ProgressCtrl;
ProgressCtrl.Create(PBS_VERTICAL | PBS_SMOOTH, CellRect, this,0);
HWND PChwnd = ProgressCtrl.GetSafeHwnd();
ProgressCtrl.MoveWindow(&CellRect, TRUE);
这行定义要放到对话框定义中
CArray<CMyProgressCtrl,CMyProgressCtrl> ProCtrlArr;
//CMyProgressCtrl只是重载了operator = 和copy construct,其它没做什么。
CRect rc,CellRect;
m_list.GetItemRect(i,&rc,LVIR_LABEL);
CellRect.bottom = rc.bottom;CellRect.top = rc.top;
CellRect.right = rc.right;CellRect.left = rc.left ;//- 360CMyProgressCtrl PCtrl;
theApp.ProCtrlArr.Add(PCtrl);
int nB = theApp.ProCtrlArr.GetSize();
theApp.ProCtrlArr.GetAt(nB-1).Create(WS_VISIBLE|PBS_VERTICAL|PBS_SMOOTH,CellRect,&m_list,0);
HWND PChwnd = theApp.ProCtrlArr.GetAt(nB-1).GetSafeHwnd();但是::IsWindow(PChwnd)老是返回为0 , 问题出在哪里呢?
是局部变量,出了这个函数就销毁了。