VC++中向listbox中addstring,但是程序中加入的内容不显示
listbox对应变量是CListBoxm_explain,在OnInitDialog初始化中,m_explain被赋值为“------Begin------”,这里都可...
listbox对应变量是CListBox m_explain,在OnInitDialog初始化中,m_explain被赋值为“------Begin------”,这里都可以显示。后面再运行的过程中,边绘制动画边想m_explain中添加文字。主代码如下:
BOOL CMyDialog::DoInsertSort(int num[], int number)
{
for ( int i = 1; i < number; i++ ) //从第二个数据开始,
{
ShowCode1(num,i,number);//用来说明最外层循环中当前变量的值,如:“外层循环:i值为X,i值小于size值,进入循环”
ShowColor1(num,i);//用来闪烁当前插入元素矩形的函数
Sleep(m_global_speed*2);
for ( int j = i; j > 1 ; j -- )
{.......//略}
}
return 1;
}
在ShowCode1中对m_explain的内容进行AddString。
void CMyDialog::ShowCode1(int num[], int i, int number)
{
CString loadstrg;
CString string1,string2;
string1.Format("%d",i); //将变量组装到字符串中
string2.Format("%d",number); //将变量组装到字符串中
loadstrg="外层循环:i值为";
int n = loadstrg.GetLength();
loadstrg.Insert(n,string1);
n = loadstrg.GetLength();
loadstrg.Insert(n,",size值为");
n = loadstrg.GetLength();
loadstrg.Insert(n,string2);
n = loadstrg.GetLength();
loadstrg.Insert(n,",i值小于size值,进入循环");
m_explain.InsertString(0,loadstrg);
}
关键是 那个listbox不显示添加的内容,只能显示“------Begin------”。 展开
BOOL CMyDialog::DoInsertSort(int num[], int number)
{
for ( int i = 1; i < number; i++ ) //从第二个数据开始,
{
ShowCode1(num,i,number);//用来说明最外层循环中当前变量的值,如:“外层循环:i值为X,i值小于size值,进入循环”
ShowColor1(num,i);//用来闪烁当前插入元素矩形的函数
Sleep(m_global_speed*2);
for ( int j = i; j > 1 ; j -- )
{.......//略}
}
return 1;
}
在ShowCode1中对m_explain的内容进行AddString。
void CMyDialog::ShowCode1(int num[], int i, int number)
{
CString loadstrg;
CString string1,string2;
string1.Format("%d",i); //将变量组装到字符串中
string2.Format("%d",number); //将变量组装到字符串中
loadstrg="外层循环:i值为";
int n = loadstrg.GetLength();
loadstrg.Insert(n,string1);
n = loadstrg.GetLength();
loadstrg.Insert(n,",size值为");
n = loadstrg.GetLength();
loadstrg.Insert(n,string2);
n = loadstrg.GetLength();
loadstrg.Insert(n,",i值小于size值,进入循环");
m_explain.InsertString(0,loadstrg);
}
关键是 那个listbox不显示添加的内容,只能显示“------Begin------”。 展开
1个回答
展开全部
先调试下,m_explain.InsertString(0,loadstrg);这句之前, loadstrg有没有得到你想要的字符串
追问
调试中loadstrg已经正确含有需要的字符串了。
同时我还发现,不是loadstring显示不出来,当DoInsertSort函数全部执行结束,listbox就突然一下子输出全部需要的语句。
这是m_explain.InsertString(0,loadstrg); 运行结束后的调试截图:
追答
CListBox的默认属性有sort,把属性-> sort勾去掉,看下,实在不行,用AddString,这个肯定没问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询