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 应用程序:为消息/输出服务创建文本框的主要内容,如果未能解决你的问题,请参考以下文章

使用 Gimp 修改 MFC MS Visual Studio 2019 应用程序的工具栏

为啥我的 Visual Studio 2013 项目需要 mfc100.dll?

为啥最小 MFC 项目在 Visual Studio 2013 上存在链接错误?

错误无法在 Visual Studio 社区 2013 中打开文件“mfc80u.lib”

Visual Studio2013怎么创建MFC窗体

Visual Studio2013怎么创建MFC窗体