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 上存在链接错误?