CheckBox内嵌于MSFlxGrid怎么让checkbox跟随滚动条滚动 MSFlexGrid控件嵌入了CheckBox,但是当表格数据不止一页(需要滚动)时,CheckBox不会随滚动条滚动 。要怎么解决这个问题啊 ? 求大神指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSFLXGRID好象一个函数可以获取第一行的行数(就是顶行(top)的行数是几),比如第5行在顶行,就是在MSFLXGRID的第一行,这时通过这个函数就可以获得顶行是5,这样你就可以把CHECKBOX显示在相应的位置上,1到4行的CHECKBOX就不显示了 悲剧,我以前倒是是自绘过一个ListCtrl,根据滚动条信息。可以自绘控件的。当时用的是进度条。MSFLXGRID难道没做到这点么? 你如果自绘的话。可以参考下这个LRESULT CMyListCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam){ // TODO: Add your specialized code here and/or call the base class LRESULT ret= CListCtrl::WindowProc(message, wParam, lParam); if(WM_HSCROLL==message || WM_VSCROLL==message || WM_MOUSEWHEEL==message) { UpdateProgressCtrl(); } return ret;}void CMyListCtrl::UpdateProgressCtrl(){ int Top=GetTopIndex(); int Total=GetItemCount(); int PerPage=GetCountPerPage(); int LastItem=((Top+PerPage)>Total)?Total:Top+PerPage; CHeaderCtrl* pHeader=GetHeaderCtrl(); for(int i=0;i<Top;i++) { m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_HIDE); } for(int i=Top;i<LastItem;i++) { CRect ColRt; pHeader->GetItemRect(1,&ColRt); // get the rect CRect rt; GetItemRect(i,&rt,LVIR_LABEL); rt.top+=1; rt.bottom-=1; rt.left+=ColRt.left; int Width=ColRt.Width(); rt.right=rt.left+Width-4; m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_HIDE); m_vecTaskProgress[i].ProgressCtrl->MoveWindow(&rt);// m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_SHOW); } for(int i=LastItem;i<Total;i++) { m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_HIDE); } for(int i=Top;i<LastItem;i++) { m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_SHOW); }} CRichEditCtrl字体 VC+ado方式如何获取指定数据值 请问如果识别图片中的数字,谢谢 XML文件中不成对的字符串怎么解析? 一个简单的问题 推荐一个VC++书籍下载站点,速度不错~(非广告) 如何用VC实现英文OCR?请赐教~~~~ 在IME中是否可以建立一个窗口并拥有一个线程? 关于要求极为高的排序问题,请进,高分赠予算法高手 能帮助我的朋友进来看!!! VC++ 6安装故障!!! 求DES加密的源代码,最好是VC6.0的,谢谢
{
// TODO: Add your specialized code here and/or call the base class
LRESULT ret= CListCtrl::WindowProc(message, wParam, lParam);
if(WM_HSCROLL==message || WM_VSCROLL==message || WM_MOUSEWHEEL==message)
{
UpdateProgressCtrl();
}
return ret;
}void CMyListCtrl::UpdateProgressCtrl()
{
int Top=GetTopIndex();
int Total=GetItemCount();
int PerPage=GetCountPerPage();
int LastItem=((Top+PerPage)>Total)?Total:Top+PerPage;
CHeaderCtrl* pHeader=GetHeaderCtrl();
for(int i=0;i<Top;i++)
{
m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_HIDE);
}
for(int i=Top;i<LastItem;i++)
{
CRect ColRt;
pHeader->GetItemRect(1,&ColRt);
// get the rect
CRect rt;
GetItemRect(i,&rt,LVIR_LABEL);
rt.top+=1;
rt.bottom-=1;
rt.left+=ColRt.left;
int Width=ColRt.Width();
rt.right=rt.left+Width-4;
m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_HIDE);
m_vecTaskProgress[i].ProgressCtrl->MoveWindow(&rt);
// m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_SHOW);
}
for(int i=LastItem;i<Total;i++)
{
m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_HIDE);
}
for(int i=Top;i<LastItem;i++)
{ m_vecTaskProgress[i].ProgressCtrl->ShowWindow(SW_SHOW);
}
}