Win API,如何在对话框中编写文本?

3
我正在使用WinAPI创建一个小程序(用于练习WIN API编程),我想创建一个“关于我们”的框,告诉用户是谁建立了这个程序,版本号等信息...
我已经成功地创建了窗口,但只能创建一个空白的窗口...我想知道如何在框中写入文本?
以下是我的创建对话框的函数,其中ghInstance是窗口实例:
void CreateDialogBox(HWND hwnd)
{
CreateWindowEx(WS_EX_DLGMODALFRAME | WS_EX_TOPMOST,  TEXT("DialogClass"), TEXT("About Us"), WS_VISIBLE | WS_SYSMENU | WS_CAPTION , 100, 100, 200, 150, NULL, NULL, ghInstance,  NULL);
}

那么我该如何在空白窗口中写入一些东西呢?谢谢!
2个回答

1

3
你应该使用文本控件,这样程序就会更易于使用。实际上,你应该使用系统对话框,它几乎可以为你完成所有操作。 - Raymond Chen
谢谢,我已经使用控件代替了 :) 而且我不想使用MessageBox,而是自己编写一个 :) - Amit

0
如果您正在使用MS VC ++,可以尝试在资源脚本中编辑预制的“关于我们”信息。或者您可以手工编写一个资源脚本。
DialogboxName DIALOGEX 0, 0, 170, 62
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About Us"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
    ICON            128,IDC_STATIC,14,14,21,20
    LTEXT           "Program by you, Version 1.0",IDC_STATIC,42,14,114,8,SS_NOPREFIX
    LTEXT           "Copyright (C) 2016",IDC_STATIC,42,26,114,8
    DEFPUSHBUTTON   "OK",IDOK,113,41,50,14,WS_GROUP
END

你可以参考Charles Petzold的Windows编程书籍,其中包括第5版。

如果是本地化文本,例如在我的程序中使用不同的语言,但在资源脚本的情况下,我无法动态更改文本,因为它已经在资源脚本中定义,而不是作为简单变量。 - Kenny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接