MFC SetDlgItemText(IDC_EDIT,_T("1")),接下来怎么在第二行显示2,但第一行还是1,不要告诉我那种笨法子!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC SetDlgItemText(IDC_EDIT,_T("1")),接下来怎么在第二行显示2,但第一行还是1,不要告诉我那种笨法子!相关的知识,希望对你有一定的参考价值。

如果有1~1000个数据,每一行显示一个,该怎么弄

参考技术A 为编辑框关联CString类型变量m_sEdit,在编辑框的属性中选择多行,垂直滚动
初始化时加入以下语句:
m_sEdit.Empty();
CString str;
for (int i=0;i<1000;i++)

str.Format("%d", i+1);
str += "\r\n";
m_sEdit += str;

UpdateData(FALSE);
参考技术B CString a;
CString b;
int i;
for(i=1;i<=400;i++)

a.Format(_T("%d\r\n"),i);
b+=a;

SetDlgItemText(IDC_EDIT1,b);本回答被提问者和网友采纳
参考技术C 你可以用for里面在加一个数据转换把数字转成文字不就成了

如何在自定义类中调用“SetDlgItemText”?

我创建了基于Dialog的MFC应用程序(c ++)。 OnBnClickedButton使用SetDlgItemText()打印编辑控件的数据。现在我想在自定义类(新创建的类)中使用SetDlgItemText,但收到错误“Debug assertion failed”。

class test: public CDialogEx
{
public:
    void upd(CString);
};

void test::upd(CString a)
{
    SetDlgItemText(IDC_EDIT6,a);
}

void CMFCApplication3Dlg::OnBnClickedButton4()
{
    test obj;
    obj.upd("Hello");
}

答案

您只能在创建对话框窗口时设置对话框项。

调用CreateDoModal时会创建对话框。只要您只有一个对话框类的实例,就不能在未创建对话框时访问其中的任何窗口。

通常,您应该使用DDX例程在对话框类和窗口之间交换数据。

PS:在我看来这是一个初学MFC问题。请阅读一些教程。

另一答案

尝试在事件处理程序中执行此操作

void CMFCApplication3Dlg::OnBnClickedButton4()
{
    CString str; //Initialize this string to whatever you wish to
    GetDlgItem(IDC_EDIT6)->SetWindowText(str);
}

希望这可以帮助。

p.s我知道这与SetDlgItemText无关,它只是在mfc中设置文本的另一种方式。

以上是关于MFC SetDlgItemText(IDC_EDIT,_T("1")),接下来怎么在第二行显示2,但第一行还是1,不要告诉我那种笨法子!的主要内容,如果未能解决你的问题,请参考以下文章

mfc 动态更新编辑框内容

MFC刷新取到的系统时间

MFC的DDX和DDV机制

MFC 编辑框内容更新方法以及滚动条设置

win32 SetDlgItemText 在 WM_INITDIALOG 中不起作用

VC中编辑框更新SetDlgItemText()与UpdateData()的区别