MFC中MSFLEXGRID控件的用法 我做的是基于对话框的应用程序,把这个控件拖进来之后控制不了,求帮助 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个控件是VB带的(当然VC也能用),文档在MSDN中VB控件参考的部分有,而且还是中文的。 这个控件 拖进来 后 ,不是 有 h 和cpp 文件吗。查看 他的 方法。 给段初始化例子:// fill grid header long wid=0; char Title[10][10]={_T("行 号"), _T("字 串1"), _T("字 串2"), _T("字 串3"), _T("字 串4"), _T("字 串5"), _T("字 串6"), _T("字 串7"), _T("字 串8"), _T("字 串9")}; m_Grid.SetRow(0); int i; int cols=m_Grid.GetCols(); for (i=0;i<cols;i++) {// col if (i==0) wid=600; else wid=6500; m_Grid.SetCol(i); m_Grid.SetColWidth(i,wid); m_Grid.SetColAlignment(i,0); m_Grid.SetText(Title[i]); }// 内容:BOOL CEditStrDlg::FillGrid(){ CMainFrame *pMain=(CMainFrame*)AfxGetMainWnd(); CEditStringDoc *pDoc=(CEditStringDoc *)pMain->GetActiveDocument(); m_OriginText.RemoveAll(); int total=pDoc->m_TextArray.GetSize(); CString OneLine; CStringArray Str10;//5->10 int GridRow=1; for (int jj=0;jj<total;++jj) { m_bChanged.Add(0); // OneLine=pDoc->m_TextArray[jj]; if(m_MultiLine) m_bOpenLine.Add(1); else m_bOpenLine.Add(0); //afxDump<< "Line=" << jj+1 << " M="<< m_bOpenLine[jj]<<"\n" ; if(OneLine.IsEmpty()) continue; if((OneLine.GetAt(0)=='/') && (OneLine.GetAt(1)=='/')) continue; Str10.RemoveAll(); //OneLine="qedvwqgfrbhwr \"111111111111\" \"2222222\" \"33\" \"444\" \"55555\" "; if (!SeperateLine(OneLine,Str10)) { continue; } m_Grid.SetRow(GridRow);// row1... m_Grid.SetCol(0); char line[20]; sprintf(line,"%5d",jj+1); m_Grid.SetText(line);// line number int cols=m_Grid.GetCols()-1; int subs=Str10.GetSize(); if(subs>cols) { subs=cols; CString prompt; prompt.Format("行%d中的子串大于9个,第10个以后将被忽略!",line); AfxMessageBox(prompt); } for(int kk=0;kk<subs;kk++) { if(kk==0) m_OriginText.Add(Str10[0]); m_Grid.SetCol(kk+1); if(!Str10[kk].IsEmpty()) m_Grid.SetText(Str10[kk]); }// GridRow++; if(GridRow>1000) { AfxMessageBox("文件大于1000行!"); return FALSE; } }// selected if(GridRow <=1 ) return FALSE; m_Grid.SetRows(GridRow); m_Grid.SetRow(1); m_Grid.SetCol(1); m_Grid.SetFocus(); return TRUE;} 我是从工具箱拖进来的这个控件,拖进来之后都需要做哪些工作,我按照以前添加Dll类型空间的方法试了不行,现在不知道该怎么操作了。 谁能告诉我一下在VS2008中引用OCX控件的详细操作方法吗 拖进来后 关联成:m_Grid 关联我会,我是想知道在MFC应用程序中使用OCX控件的详细操作步骤及方法 “使用OCX控件的详细操作步骤及方法”能拖进来, 就 成功 一半了。剩下就是 看 向导 产生 的 h 和 cpp 了。 麻烦有谁能说一下在MFC应用程序中使用OCX控件的详细操作步骤及方法吗 vc tab control 如何把标签显示在左边? 有关CSocket 的send的问题 程序编译成DEBUG错,而编译成RELEASE一切正常? 提问 会的帮的忙 XP SP2 如何进行即时调试的问题? Copy 而来的 Project,在 Debug 的时候不能设置断点(不能进入断点),怎么改编译选项? 我在vc.net中制作规则dll使用静态mfc连接,使用对话框资源就出错 QQ上“我的好友”、“陌生人”、“黑名单”按钮怎么做? 堆(heap)是什么,它的特点是什么 如何判定及其是否通过局域网连入互联网? 统计一下c++的工资待遇 RichEdit怎么设置颜色间断变化
查看 他的 方法。
long wid=0;
char Title[10][10]={_T("行 号"),
_T("字 串1"),
_T("字 串2"),
_T("字 串3"),
_T("字 串4"),
_T("字 串5"),
_T("字 串6"),
_T("字 串7"),
_T("字 串8"),
_T("字 串9")};
m_Grid.SetRow(0);
int i;
int cols=m_Grid.GetCols();
for (i=0;i<cols;i++)
{// col
if (i==0) wid=600;
else wid=6500;
m_Grid.SetCol(i);
m_Grid.SetColWidth(i,wid);
m_Grid.SetColAlignment(i,0);
m_Grid.SetText(Title[i]);
}
// 内容:BOOL CEditStrDlg::FillGrid()
{
CMainFrame *pMain=(CMainFrame*)AfxGetMainWnd();
CEditStringDoc *pDoc=(CEditStringDoc *)pMain->GetActiveDocument();
m_OriginText.RemoveAll();
int total=pDoc->m_TextArray.GetSize();
CString OneLine;
CStringArray Str10;//5->10
int GridRow=1;
for (int jj=0;jj<total;++jj)
{
m_bChanged.Add(0);
//
OneLine=pDoc->m_TextArray[jj];
if(m_MultiLine) m_bOpenLine.Add(1);
else m_bOpenLine.Add(0);
//afxDump<< "Line=" << jj+1 << " M="<< m_bOpenLine[jj]<<"\n" ;
if(OneLine.IsEmpty()) continue;
if((OneLine.GetAt(0)=='/') && (OneLine.GetAt(1)=='/')) continue;
Str10.RemoveAll();
//OneLine="qedvwqgfrbhwr \"111111111111\" \"2222222\" \"33\" \"444\" \"55555\" ";
if (!SeperateLine(OneLine,Str10))
{
continue;
}
m_Grid.SetRow(GridRow);// row1...
m_Grid.SetCol(0);
char line[20];
sprintf(line,"%5d",jj+1);
m_Grid.SetText(line);// line number
int cols=m_Grid.GetCols()-1;
int subs=Str10.GetSize();
if(subs>cols)
{
subs=cols;
CString prompt;
prompt.Format("行%d中的子串大于9个,第10个以后将被忽略!",line);
AfxMessageBox(prompt);
}
for(int kk=0;kk<subs;kk++)
{
if(kk==0) m_OriginText.Add(Str10[0]);
m_Grid.SetCol(kk+1);
if(!Str10[kk].IsEmpty()) m_Grid.SetText(Str10[kk]);
}
//
GridRow++;
if(GridRow>1000)
{
AfxMessageBox("文件大于1000行!");
return FALSE;
}
}
// selected
if(GridRow <=1 ) return FALSE;
m_Grid.SetRows(GridRow);
m_Grid.SetRow(1);
m_Grid.SetCol(1);
m_Grid.SetFocus();
return TRUE;
}
m_Grid
能拖进来, 就 成功 一半了。
剩下就是 看 向导 产生 的 h 和 cpp 了。