gpt4 book ai didi

MFC 中的 C++ GUI - 分页小部件

转载 作者:行者123 更新时间:2023-11-30 05:12:30 24 4
gpt4 key购买 nike

我正在编写 C++ 代码,目标是 WinCE 6.0 设备,但我很难为我的应用程序完成 GUI。我必须使用的 VS 2005 窗口生成器似乎并没有简化这个任务,我找不到可以阐明 API 的文档,希望这里有人可以。

我需要在用户所在的小部件页面/页面总数上动态写入。我希望 CTEXT 是可以使用的正确小部件

CTEXT           IDC_PG, 168,183,63,63

但是我似乎没有找到如何在 CTEXT(或任何其他合适的小部件)上打印的正确方法提前感谢您提供任何好的建议。

最佳答案

如果我对这个问题的理解是正确的,那么您想在您的 UI 上显示一些文本,格式为“Page x of n”。静态文本控件(如 CTEXT)适用于此。

要以编程方式设置文本,您可以调用 SetWindowText,但由于这是在对话框中,调用 SetDlgItemText 可能更容易。 .

在您的示例中,标识符是 IDC_PG,它应该对应于对话框中所有控件中唯一的数字常量。假设您有一个对话框的 MFC 对象(我假设是 myDialog)和一个指向您希望它显示的零终止文本的指针(我假设是 szPageText ),你的电话看起来像:

myDialog.SetDlgItemText(IDC_PG, szPageText);

如果您只有对话框的句柄,您的调用将如下所示:

SetDlgItemText(hDlg, IDC_PG, szPageText);

由于这是较旧的代码,它可能针对 MBCS(在 Windows 文档中通常称为 ANSI)或 UTF-16(在 MSDN 中通常称为 Unicode 或“宽”字符串)进行编译,因此您可能希望使用 TCHAR 和相关宏以确保它以任何一种方式工作。

TCHAR szPageText[64] = TEXT("");
wsprintf(szPageText, TEXT("Page %d of %d"), currentPage, totalPages);
myDialog.SetDlgItemText(IDC_PG, szPageText);

在更现代的代码中,您可能会明确使用 API 的广泛版本:

WCHAR szPageText[64] = L"";
::wsprintfW(szPageText, L"Page %d of %d", currentPage, totalPages);
myDialog.SetDlgItemTextW(IDC_PG, szPageText);

关于MFC 中的 C++ GUI - 分页小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44501243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com