MFC,编辑框使用SetWindowText显示文本

第一次单击按钮,在第一行的六个编辑框中显示文本,第二次单击,在第二行六个编辑框中显示文本,以此类推:显示文本的函数为:voidCProcessManagementDlg:... 第一次单击按钮,在第一行的六个编辑框中显示文本,第二次单击,在第二行六个编辑框中显示文本,以此类推:显示文本的函数为:
void CProcessManagementDlg::ShowProcess(int t)
{
//build(0);
int ss;
int q;
CString cstr[6];
cstr[0].Format(_T("%d"),pcb[t].pid);
cstr[1].Format(_T("%d"),pcb[t].priority);
cstr[2]=pcb[t].statu;
cstr[3].Format(_T("%d"),pcb[t].A);
cstr[4].Format(_T("%d"),pcb[t].timep);
cstr[5].Format(_T("%d"),pcb[t].runtime);
for(ss = (6*t+1001);ss<=(6*t+1006);ss++)
{
GetDlgItem(ss)->SetWindowText(_T(cstr[ss-(6*t+1001)]));
}
} 其中6*t+1001为编辑框ID,为什么第二次单击时,在第二行显示了,但是第一行的内容却没有了,第三次单击时,第三行显示了,第二行却没有了。
单击按钮的函数为:
void CProcessManagementDlg::OnBuildprocess()
{
// TODO: Add your control notification handler code here
//char str_pid[10],str_priority[10],str_cal[10],str_timepiece[10],str_time[10];
build(0);
m_pronum.Format(_T("%d"),cur_pcb);
UpdateData(FALSE);
if((cur_pcb-1)==0)
{
ShowProcess(0);
}
else if((cur_pcb-1)==1)
{
ShowProcess(1);
}
else if((cur_pcb-1)==2)
{
ShowProcess(2);
}
else if((cur_pcb-1)==3)
{
ShowProcess(3);
}
else
{
ShowProcess(4);
}
}
谢谢了
展开
 我来答
李_岚峰
2011-06-28 · 超过42用户采纳过TA的回答
知道答主
回答量:146
采纳率:0%
帮助的人:110万
展开全部
你那个cur_pcb是什么? 估计是你传值的问题 当cur_pcb等于2时 int t 的值赋给 int ss 了!
然后你在判断的时候把你的编辑框ID也给改了啊! 当然就不是从第一个开始输出了 !把你的按钮里面添加的代码去掉 直接调用你那个ShowProcess();把函数参数也去掉 不用传值
frattini
2011-06-29 · TA获得超过131个赞
知道答主
回答量:164
采纳率:0%
帮助的人:85.8万
展开全部
别用UPdateData(false)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
noodlest
2011-06-28 · TA获得超过785个赞
知道小有建树答主
回答量:724
采纳率:100%
帮助的人:743万
展开全部
将UpdateData(FALSE);去掉就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式