关于CListctrl类的EnsureVisible()函数在Vista系统下的使用问题 我在我的程序中使用了CListctrl类,然后将窗口大小调整为每次只能让一行显示在可见区域,然后我使用EnsureVisible()函数让指定行显示在可见区域,这个过程在XP系统下一切正常,可在Vista系统下就不正常了,显示的总不是我指定的那行?有没有人遇到过这种问题?怎么解决?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码是很简单的:BOOL CtestDlg::OnInitDialog(){ ........... // TODO: 在此添加额外的初始化代码 CString strHeader(_T("")); for(int i = 0; i < 7; i++) { strHeader.Format(L"%d", i); m_list.InsertColumn(i, strHeader); m_list.SetColumnWidth(i, 60); } int count = 0; for(int i = 0; i < 10; i++) { count += 1; strHeader.Format(L"%d", count); m_list.InsertItem(i, strHeader); for(int j = 1; j < 7; j++) { count += 1; strHeader.Format(L"%d", count); m_list.SetItemText(i, j, strHeader); } } int nCount = m_list.GetItemCount(); nVisibleLine = 0; //nVisibleLine是一个int if(nCount > 0) { m_list.EnsureVisible(0, FALSE); } return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}void CtestDlg::OnBnClickedButton1(){ // 前一行 if(nVisibleLine > 0) { nVisibleLine =nVisibleLine- 1; m_list.EnsureVisible(nVisibleLine, FALSE); }}void CtestDlg::OnBnClickedButton2(){ //后一行 if(nVisibleLine < m_list.GetItemCount() - 1) { nVisibleLine =nVisibleLine+ 1; m_list.EnsureVisible(nVisibleLine, FALSE); }}代码就是这些了,Vista下运行就不正常 谁参照陆其明老师的AVChat做过视频传输?一个问题想请教?(120分3个帖子) VS界面设计 关于WSAEventSelect和IO重叠模型的问题 散分200,预祝自己面试通过 请教!有什么方法可以用VC编写能控制WINDOWS文件删除的方法没有 spliterwnd中隔开两个视的那条东西很难看,有没有方法让它好看一点 谁能解释下面代码在VC.net中为什么ddd=0????!!!!! VC++生成的文件最小可以是多大啊? 关于类型转换的问题 如何读VC的经典书书籍效率高? <<windows 系统编程>>问题 PROCESSENTRY32,英文好的帮帮忙.
{
........... // TODO: 在此添加额外的初始化代码
CString strHeader(_T(""));
for(int i = 0; i < 7; i++)
{
strHeader.Format(L"%d", i);
m_list.InsertColumn(i, strHeader);
m_list.SetColumnWidth(i, 60);
}
int count = 0;
for(int i = 0; i < 10; i++)
{
count += 1;
strHeader.Format(L"%d", count);
m_list.InsertItem(i, strHeader);
for(int j = 1; j < 7; j++)
{
count += 1;
strHeader.Format(L"%d", count);
m_list.SetItemText(i, j, strHeader);
}
}
int nCount = m_list.GetItemCount();
nVisibleLine = 0; //nVisibleLine是一个int
if(nCount > 0)
{
m_list.EnsureVisible(0, FALSE);
} return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}void CtestDlg::OnBnClickedButton1()
{
// 前一行
if(nVisibleLine > 0)
{
nVisibleLine =nVisibleLine- 1;
m_list.EnsureVisible(nVisibleLine, FALSE);
}
}void CtestDlg::OnBnClickedButton2()
{
//后一行
if(nVisibleLine < m_list.GetItemCount() - 1)
{
nVisibleLine =nVisibleLine+ 1;
m_list.EnsureVisible(nVisibleLine, FALSE);
}
}
代码就是这些了,Vista下运行就不正常