MFC STATIC 控件问题
现在正在做一个程序,要求实现一个功能:每点击一次按钮,就向STATICTEXT中插入一行内容.现在的问题是,每次插入的内容都会把前一次的内容覆盖,就是说第一次在第一行插入...
现在正在做一个程序,要求实现一个功能:
每点击一次按钮,就向STATIC TEXT中插入一行内容.
现在的问题是,每次插入的内容都会把前一次的内容覆盖,就是说第一次在第一行插入内容后,下一次怎么把内容插到第二行?
目前代码如下:
void CMyDlg1::OnButton3()//把EDIT内的内容存储到一个文件中
{
// TODO: Add your control notification handler code here
SYSTEMTIME time;
CDateTimeCtrl *m_TimeCtrl=(CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1);
DateTime_GetSystemtime(m_TimeCtrl->m_hWnd,&time);
CString time1;
CStatic *Static_time1=(CStatic*)GetDlgItem(IDC_STATIC_time1);
time1.Format("%d-%d-%d",time.wYear,time.wMonth,time.wDay);
Static_time1->SetWindowTextA(time1);
}
好的话我会追分.
我想问下Sadusaga
这样修改后,time1好象就没用了是吗?
其实我就是想把时间选择器所选定的时间添加到STATIC里,刚按你的方法试了,可以运行,但点击按钮添加时STATIC无显示,请再帮下忙 展开
每点击一次按钮,就向STATIC TEXT中插入一行内容.
现在的问题是,每次插入的内容都会把前一次的内容覆盖,就是说第一次在第一行插入内容后,下一次怎么把内容插到第二行?
目前代码如下:
void CMyDlg1::OnButton3()//把EDIT内的内容存储到一个文件中
{
// TODO: Add your control notification handler code here
SYSTEMTIME time;
CDateTimeCtrl *m_TimeCtrl=(CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1);
DateTime_GetSystemtime(m_TimeCtrl->m_hWnd,&time);
CString time1;
CStatic *Static_time1=(CStatic*)GetDlgItem(IDC_STATIC_time1);
time1.Format("%d-%d-%d",time.wYear,time.wMonth,time.wDay);
Static_time1->SetWindowTextA(time1);
}
好的话我会追分.
我想问下Sadusaga
这样修改后,time1好象就没用了是吗?
其实我就是想把时间选择器所选定的时间添加到STATIC里,刚按你的方法试了,可以运行,但点击按钮添加时STATIC无显示,请再帮下忙 展开
3个回答
展开全部
这个很好解决。
通过一个成员或者全局的CString保存信息就可以了,然后每次都SetWindowText;
比如:
CString m_text;
...
修改后的代码如下:
void CMyDlg1::OnButton3()//把EDIT内的内容存储到一个文件中
{
// TODO: Add your control notification handler code here
SYSTEMTIME time;
CDateTimeCtrl *m_TimeCtrl=(CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1);
DateTime_GetSystemtime(m_TimeCtrl->m_hWnd,&time);
CString csOldTime;
GetDlgItem(IDC_STATIC_time1)->GetWindowText( csOldTime );
m_text += csOldTime;
m_text += "\r\n"; // 换行处理
CString time1;
CStatic *Static_time1=(CStatic*)GetDlgItem(IDC_STATIC_time1);
time1.Format("%d-%d-%d",time.wYear,time.wMonth,time.wDay);
Static_time1->SetWindowTextA(m_text);
}
通过一个成员或者全局的CString保存信息就可以了,然后每次都SetWindowText;
比如:
CString m_text;
...
修改后的代码如下:
void CMyDlg1::OnButton3()//把EDIT内的内容存储到一个文件中
{
// TODO: Add your control notification handler code here
SYSTEMTIME time;
CDateTimeCtrl *m_TimeCtrl=(CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1);
DateTime_GetSystemtime(m_TimeCtrl->m_hWnd,&time);
CString csOldTime;
GetDlgItem(IDC_STATIC_time1)->GetWindowText( csOldTime );
m_text += csOldTime;
m_text += "\r\n"; // 换行处理
CString time1;
CStatic *Static_time1=(CStatic*)GetDlgItem(IDC_STATIC_time1);
time1.Format("%d-%d-%d",time.wYear,time.wMonth,time.wDay);
Static_time1->SetWindowTextA(m_text);
}
展开全部
1、确定你的Static控件高度可以显示多行
2、把
time1.Format("%d-%d-%d",time.wYear,time.wMonth,time.wDay);
改成
time1.Format("%s\n%d-%d-%d",time1.GetBuffer(0),time.wYear,time.wMonth,time.wDay);
2、把
time1.Format("%d-%d-%d",time.wYear,time.wMonth,time.wDay);
改成
time1.Format("%s\n%d-%d-%d",time1.GetBuffer(0),time.wYear,time.wMonth,time.wDay);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SetWindowTextA之前
time1 = Static_time1->GetWindowTextA() + time1;
time1 = Static_time1->GetWindowTextA() + time1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询