高手来光临一下,在MFC下 实现翻页功能! 高手来光临一下,在MFC下 实现翻页功能! 类似于google 最下方的 上一页 下一页的功能!不知道 我说的是否清楚 麻烦知道的帮我解答一下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://img.ph.126.net/IjXd6jYdutSq27FSPD3JLA==/3237243707149559328.jpg看看这个地址吧 如果是vs2008的话, 用CMFCTabCtrl, 选择onenote风格.不是的话, 自己实现, 顶部button, 下面一些Dlg. 这个效果也行 就是类似于google最下面的那个! 哦我使用listcontrol绑定数据,通过按钮实现上下页控制listcontrol的上下页翻页, BOOL COnLineTeaDlg::OnInitDialog(){ CDialog::OnInitDialog(); // TODO: Add extra initialization here intPageSize=10;//每页显示数目 intPageNo=1;//页数编号 csPageNo.Format(TEXT("%d"),intPageNo); SetDlgItemText(IDC_STATIC_PAGE,csPageNo); listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); listCtrl.InsertColumn(0, _T("xxx"), LVCFMT_LEFT, 80); listCtrl.InsertColumn(1, _T("xxx"), LVCFMT_LEFT, 80); listCtrl.InsertColumn(2, _T("xxx"), LVCFMT_LEFT, 80);//插入列 listCtrl.InsertColumn(3, _T("xxx"), LVCFMT_LEFT, 80); listCtrl.InsertColumn(4, _T("xxx"), LVCFMT_LEFT, 80); webServiceInterFace * wsf; shellWebservice sw; CComPtr<IXMLHTTPRequest> spXMLHTTP; CComQIPtr <IXMLDOMDocument2> spResponseXMLDoc; CString* value; wsf=(webServiceInterFace *) new webServiceSearchTeacher(_T("-1"),_T("-1"),_T("-1"),_T("-1"),_T(""),_T("")); spXMLHTTP=sw.webServiceRequest(wsf); spXMLHTTPList=spXMLHTTP;//数据通过webservic调用的 BindListCtrl(0); return TRUE; } void COnLineTeaDlg::OnBnClickedButtonFirst()//第一页按钮{ // TODO: Add your control notification handler code here intPageNo=1; listCtrl.DeleteAllItems(); BindListCtrl(0);}void COnLineTeaDlg::OnBnClickedButtonPrevous()//前一页{ // TODO: Add your control notification handler code here if(intPageNo==1) { MessageBox(_T("已是第一页")); } if(intPageNo>1) { intPageNo--; listCtrl.DeleteAllItems(); BindListCtrl(0); }}void COnLineTeaDlg::OnBnClickedButtonNext()//下一页{ // TODO: Add your control notification handler code here intPageNo++; listCtrl.DeleteAllItems(); BindListCtrl(0);}void COnLineTeaDlg::OnBnClickedButtonLast()//最后一页{ // TODO: Add your control notification handler code here listCtrl.DeleteAllItems(); BindListCtrl(1);}void COnLineTeaDlg::BindListCtrl(int intLastPage)//绑定数据{/*下面是绑定数据的调用*//* CComQIPtr <IXMLDOMDocument2> spResponseXMLDoc; CString* value; if(spXMLHTTPList->status==200) { spResponseXMLDoc = spXMLHTTPList->responseXML; CString csUserID = _T("//UserID"); CString csUserName = _T("//UserName"); CString csTrueName = _T("//TrueName"); CString csOrganizationName = _T("//OrganizationName"); CString csTeacherGradeName = _T("//teacherGradeName"); CString csGradeTypeSubjectName = _T("//GradeTypeSubjectName"); MSXML2::IXMLDOMNodeListPtr nlUserID=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csUserID.AllocSysString()))); MSXML2::IXMLDOMNodeListPtr nlUserName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csUserName.AllocSysString()))); MSXML2::IXMLDOMNodeListPtr nlTrueName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csTrueName.AllocSysString()))); MSXML2::IXMLDOMNodeListPtr nlOrganizationName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csOrganizationName.AllocSysString()))); MSXML2::IXMLDOMNodeListPtr nlTeacherGradeName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csTeacherGradeName.AllocSysString()))); MSXML2::IXMLDOMNodeListPtr nlGradeTypeSubjectName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csGradeTypeSubjectName.AllocSysString())));*/ int intStart=intPageSize*(intPageNo-1); int intEnd=intPageSize*intPageNo; if(nlUserID->length<intStart) { intPageNo--; intStart=intPageSize*(intPageNo-1); MessageBox(_T("已到达最末页")); //return; } if(nlUserID->length<=intEnd) { intEnd=nlUserID->length; } if(intLastPage==1) { intStart=(nlUserID->length/intPageSize)*intPageSize; intEnd=nlUserID->length; intLastPage=0; } value=new CString[nlUserID->length]; for(int i=intStart;i<intEnd;i++) { value[i]=(char*)nlUserID->item[i]->text; int nRow=listCtrl.InsertItem(0,nlUserName->item[i]->text); listCtrl.SetItemText(nRow,1,nlTrueName->item[i]->text); listCtrl.SetItemText(nRow,2,nlOrganizationName->item[i]->text); listCtrl.SetItemText(nRow,3,nlTeacherGradeName->item[i]->text); listCtrl.SetItemText(nRow,4,nlGradeTypeSubjectName->item[i]->text); listCtrl.SetItemData(i,(DWORD)(&value[i])); } csPageNo.Format(TEXT("%d"),intPageNo); SetDlgItemText(IDC_STATIC_PAGE,csPageNo); } else { MessageBox(_T("无法连接到服务器!")); }} 新手:请大家推荐个DirectX的视频教程,或书籍等相关资料? CStdioFile写文件的问题 我刚学VC++问个关于在窗口显示一副位图的超级简单问题 CListCtrl的刷屏语句是什么? 求《ATL开发指南》电子版或书。(分全部给一人,不够再加) CSocket通讯问题? 关于AfxMessageBox(),知道其工作原理的进来,欢迎讨论,来者有分! SQLserver&完成端口 是否可以动态添加控件 如何在菜单栏创建控件。 请教Socket接收发送大数据的问题 关于View类下创建OnCreate函数的一点问题。
BOOL COnLineTeaDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO: Add extra initialization here
intPageSize=10;//每页显示数目
intPageNo=1;//页数编号
csPageNo.Format(TEXT("%d"),intPageNo);
SetDlgItemText(IDC_STATIC_PAGE,csPageNo);
listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
listCtrl.InsertColumn(0, _T("xxx"), LVCFMT_LEFT, 80);
listCtrl.InsertColumn(1, _T("xxx"), LVCFMT_LEFT, 80);
listCtrl.InsertColumn(2, _T("xxx"), LVCFMT_LEFT, 80);//插入列
listCtrl.InsertColumn(3, _T("xxx"), LVCFMT_LEFT, 80);
listCtrl.InsertColumn(4, _T("xxx"), LVCFMT_LEFT, 80);
webServiceInterFace * wsf;
shellWebservice sw;
CComPtr<IXMLHTTPRequest> spXMLHTTP;
CComQIPtr <IXMLDOMDocument2> spResponseXMLDoc;
CString* value;
wsf=(webServiceInterFace *) new webServiceSearchTeacher(_T("-1"),_T("-1"),_T("-1"),_T("-1"),_T(""),_T(""));
spXMLHTTP=sw.webServiceRequest(wsf);
spXMLHTTPList=spXMLHTTP;//数据通过webservic调用的
BindListCtrl(0);
return TRUE;
}
void COnLineTeaDlg::OnBnClickedButtonFirst()//第一页按钮
{
// TODO: Add your control notification handler code here
intPageNo=1;
listCtrl.DeleteAllItems();
BindListCtrl(0);
}void COnLineTeaDlg::OnBnClickedButtonPrevous()//前一页
{
// TODO: Add your control notification handler code here
if(intPageNo==1)
{
MessageBox(_T("已是第一页"));
}
if(intPageNo>1)
{
intPageNo--;
listCtrl.DeleteAllItems();
BindListCtrl(0);
}
}void COnLineTeaDlg::OnBnClickedButtonNext()//下一页
{
// TODO: Add your control notification handler code here
intPageNo++;
listCtrl.DeleteAllItems();
BindListCtrl(0);
}void COnLineTeaDlg::OnBnClickedButtonLast()//最后一页
{
// TODO: Add your control notification handler code here
listCtrl.DeleteAllItems();
BindListCtrl(1);
}void COnLineTeaDlg::BindListCtrl(int intLastPage)//绑定数据
{
/*下面是绑定数据的调用*/
/*
CComQIPtr <IXMLDOMDocument2> spResponseXMLDoc;
CString* value;
if(spXMLHTTPList->status==200)
{
spResponseXMLDoc = spXMLHTTPList->responseXML; CString csUserID = _T("//UserID");
CString csUserName = _T("//UserName");
CString csTrueName = _T("//TrueName");
CString csOrganizationName = _T("//OrganizationName");
CString csTeacherGradeName = _T("//teacherGradeName");
CString csGradeTypeSubjectName = _T("//GradeTypeSubjectName"); MSXML2::IXMLDOMNodeListPtr nlUserID=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csUserID.AllocSysString())));
MSXML2::IXMLDOMNodeListPtr nlUserName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csUserName.AllocSysString())));
MSXML2::IXMLDOMNodeListPtr nlTrueName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csTrueName.AllocSysString())));
MSXML2::IXMLDOMNodeListPtr nlOrganizationName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csOrganizationName.AllocSysString())));
MSXML2::IXMLDOMNodeListPtr nlTeacherGradeName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csTeacherGradeName.AllocSysString())));
MSXML2::IXMLDOMNodeListPtr nlGradeTypeSubjectName=spResponseXMLDoc->selectNodes(_bstr_t(((wchar_t *) csGradeTypeSubjectName.AllocSysString())));
*/
int intStart=intPageSize*(intPageNo-1);
int intEnd=intPageSize*intPageNo;
if(nlUserID->length<intStart)
{
intPageNo--;
intStart=intPageSize*(intPageNo-1);
MessageBox(_T("已到达最末页"));
//return;
}
if(nlUserID->length<=intEnd)
{
intEnd=nlUserID->length;
}
if(intLastPage==1)
{
intStart=(nlUserID->length/intPageSize)*intPageSize;
intEnd=nlUserID->length;
intLastPage=0;
} value=new CString[nlUserID->length];
for(int i=intStart;i<intEnd;i++)
{
value[i]=(char*)nlUserID->item[i]->text;
int nRow=listCtrl.InsertItem(0,nlUserName->item[i]->text);
listCtrl.SetItemText(nRow,1,nlTrueName->item[i]->text);
listCtrl.SetItemText(nRow,2,nlOrganizationName->item[i]->text);
listCtrl.SetItemText(nRow,3,nlTeacherGradeName->item[i]->text);
listCtrl.SetItemText(nRow,4,nlGradeTypeSubjectName->item[i]->text);
listCtrl.SetItemData(i,(DWORD)(&value[i]));
}
csPageNo.Format(TEXT("%d"),intPageNo);
SetDlgItemText(IDC_STATIC_PAGE,csPageNo);
}
else
{
MessageBox(_T("无法连接到服务器!"));
}}