MS Visual Studio 2013 MFC 应用程序:为消息/输出服务创建文本框

Posted

技术标签:

【中文标题】MS Visual Studio 2013 MFC 应用程序:为消息/输出服务创建文本框【英文标题】:MS Visual Studio 2013 MFC Application: Create a text box for messaging / output service 【发布时间】:2014-09-03 14:49:53 【问题描述】:

使用 MS VC,我创建了一个“基于对话框”的 MFC 应用程序。我们称它为 MyApp1。我只是想在我的对话框中添加某种“框”来显示文本。我尝试添加一个“编辑控件”,然后通过

打印到它
var_set.SetCueBanner(_T("Test"), TRUE);

var_set 是编辑控件CEdit 的变量。此代码添加在按下对话框中的按钮时调用的函数中。例如

void MyApp1Dlg::OnBnClickedButton1()

     var_set.SetCueBanner(_T("Test"), TRUE);

但是,我认为这至少不是应该使用“编辑控件”的方式......所以我尝试使用“静态文本”。为了控制它,我阅读使用

HWND hwndText = GetDlgItem(dlg, IDC_STATIC);
SetWindowText(hwndText, L"Test");

但我必须使用对话框的 ID dlg,它没有在 MyApp1Dlg.cpp 文件中定义。我在 MyApp1.cpp 中找到了它。我应该将该实例导出到 MyApp1Dlg.cpp 还是有其他方法可以在我的对话框中显示文本?在最终的应用程序中,我想使用它类似于一个

printf("output: %g\n", xx);

命令。感谢您的提示。

【问题讨论】:

【参考方案1】:

SetCueBanner 函数用于在编辑控件中设置提示。如果您想设置实际的文本,请使用SetWindowText - 它是父类CWnd 的一部分,因此您不会在CEdit 文档中找到它。这适用于编辑和静态控件,尽管静态控件在显示新文本之前可能还需要 RedrawWindow

var_set.SetWindowText(_T("Test"));

【讨论】:

【参考方案2】:

好的,我得到了答案: 首先,定义一个“编辑控件”框。我们将 ID 称为IDC_EDIT1。接下来,在其中一个 MyApp1Dlg.cpp 函数中,插入

CString str;
str.Format(_T("%d x %d"), .5, .4);
SetDlgItemText(IDC_EDIT1, str);

并将属性“只读”标记为True

【讨论】:

以上是关于MS Visual Studio 2013 MFC 应用程序:为消息/输出服务创建文本框的主要内容,如果未能解决你的问题,请参考以下文章