MFC:在编辑框中表示邻接矩阵
MFC: Representing adjacency matrix in edit box
我有一个基于对话框的程序(MFC(,我想在其中制作邻接图表示。我有一个编辑框 (IDC_EDIT( 和 MFC 屏蔽编辑控件 (IDC_VERTEXES(,它有一个 2 位数字的掩码。
我写了一个代码,在失去对IDC_VERTEXES的关注时,IDC_EDIT将被矩阵填充,其中所有数字都将为 0。
void CTAB1::OnEnKillfocusVertexes()
{
CString Text;
GetDlgItemText(IDC_VERTEXES, Text);
int x = _wtoi(Text);
if (!Text.IsEmpty()) {
SetDlgItemText(IDC_EDIT, L"");
}
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT);
int nPos = 0;
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
pEdit->SetSel(nPos, nPos);
pEdit->ReplaceSel(L"0");
pEdit->ReplaceSel(L" ");
}
pEdit->ReplaceSel(L"rn");
}
}
它按照我想要的方式工作,除了一件事。假设IDC_VERTEXES是否为 3 (x = 3(。IDC_EDIT应该是这样的:
0 0 0
0 0 0
0 0 0
但它看起来像这样:
0
0 0 0
0 0 0
0 0
我错过了什么还是把\r放在了错误的地方?
在每次迭代中,您都会将插入符号位置重置为编辑控件的开头。
相反,您可以在开始时设置一次插入符号位置。ReplaceSel
只需插入插入符号处,然后将插入符号向前移动。例:
pEdit->SetSel(nPos, nPos);
for(int i = 0; i < x; i++)
{
for(int j = 0; j < x; j++)
{
pEdit->ReplaceSel(L"0");
pEdit->ReplaceSel(L" ");
}
pEdit->ReplaceSel(L"rn");
}
或者您可以将pEdit->SetSel(nPos, nPos);
放在每行的开头(这将以相反的顺序插入行(
相关文章:
- 如何在C++中为表面制作邻接矩阵
- 在 c++ 中初始化邻接矩阵
- 有关邻接矩阵实现的问题
- MFC:在编辑框中表示邻接矩阵
- C++中有向无环图的邻接列表到邻接矩阵的转换
- 我需要将阵列样式的邻接矩阵转换为矢量样式(以使其看起来更好)
- 如何正确接受平方加权邻接矩阵
- 访问表示 2D 矩阵的 1D 存储数组
- 表示图像矩阵的理想数据结构是什么?
- 创建随机邻接矩阵,每个节点具有最小'k'度
- 如何在C++中将边列表转换为邻接矩阵,其中包含连接到顶点的边数而不是一条边?
- 确定邻接矩阵是否具有周期,然后输出该周期
- 在C++中使用向量的向量(2D 向量)表示邻接列表
- 邻接矩阵构建功能用一些图崩溃
- 使用邻接矩阵获取给定节点的所有边缘
- 对邻接矩阵最大循环中的节点进行计数
- 图实现,使用邻接矩阵,在链接中带有自定义数据
- 在C++中向邻接矩阵的边添加代价
- 邻接矩阵上的BFS
- 查找路径的有向图邻接矩阵