C++ 无法在单击按钮时更新对话框控件

C++ 无法在单击按钮时更新对话框控件,c++,windows,visual-c++,windows-mobile,C++,Windows,Visual C++,Windows Mobile,所以我有一个对话框CTestPrintDlg,它有一个编辑控件IDC\u AVAILABLE\u BALANCE和一个按钮 在CTestPrintDlg::onbnClickedButtonWithDrawToucher()中,我做了一些很好的工作,最后我尝试更新编辑控件文本 在按钮单击的处理程序中,您尝试了以下操作: this->GetDlgItem(IDC_AVAILABLE_BALANCE)->SetWindowTextW(_T("blah")); 及 也尝试过(定义控制变量

所以我有一个对话框CTestPrintDlg,它有一个编辑控件IDC\u AVAILABLE\u BALANCE和一个按钮

在CTestPrintDlg::onbnClickedButtonWithDrawToucher()中,我做了一些很好的工作,最后我尝试更新编辑控件文本

在按钮单击的处理程序中,您尝试了以下操作:

this->GetDlgItem(IDC_AVAILABLE_BALANCE)->SetWindowTextW(_T("blah"));

也尝试过(定义控制变量后)

以及(定义值变量后)

而且

CTestPrintDlg::Main_window_balance_var.SetString(_T("blah"));
最后也试过了

CTestPrintDlg::UpdateData(TRUE);
都没有运气。有人知道为什么这行不通吗

更新

奇怪的是,如果我这样做:

AfxGetMainWnd()->GetDlgItem(IDC_AVAILABLE_BALANCE)->SetWindowTextW(_T("blah"));

控件文本被删除。

在尝试设置编辑控件文本后,您会怎么做?如果不从按钮处理程序函数返回,则编辑控件将没有机会重新绘制自身。返回一些随机值后,仍然没有运气:(如果程序在设置文本后仍处于活动状态,则编辑控件的ID可能是错误的。不,ID是正确的。到目前为止,已对此进行了5次三重检查。非常奇怪。另一件奇怪的事情是,我可以从CTestPrintDlg::OnInitDialog()中为该控件设置文本。)
CTestPrintDlg::Main_window_balance_var.SetString(_T("blah"));
CTestPrintDlg::UpdateData(TRUE);
AfxGetMainWnd()->GetDlgItem(IDC_AVAILABLE_BALANCE)->SetWindowTextW(_T("blah"));