gpt4 book ai didi

c++ - win32 c++ 我想在 STATIC 标签的 TEXT 之后直接插入一个 EDIT 控件

转载 作者:行者123 更新时间:2023-11-28 04:08:08 25 4
gpt4 key购买 nike

要制作静态标签,我可以使用:

            HWND hwnd_ques=CreateWindow(
TEXT("STATIC"),
TEXT("Yao happy swallow is"),
WS_VISIBLE | WS_CHILD,
10,
70,
180,
30,
hwnd,
NULL,
(HINSTANCE)GetWindowLongPtr(hwnd, GWL_HINSTANCE),
NULL);

调用 CreateWindow 后,我使用 WM_SETFONT msg 设置标签的字体和字体大小(成功运行):

            SendMessage(hwnd_ques, WM_SETFONT, (WPARAM)font1, static_cast<LPARAM>(MAKELONG(TRUE, 0)));

//definition of font1 is not shown here but it worked successfully

但是,我想在 STATIC 标签的 TEXT 之后插入一个 EDIT 控件,也就是说,我将使标签宽度适合其文本宽度并分配根据标签位置和宽度编辑的 X 位置。如果我手动指定标签宽度,它无法确保标签宽度恰好适合文本宽度,因为我实际上并不知道该标签的文本宽度

我想知道如何使标签宽度恰好适合其文本宽度。也许我可以获取文本宽度,因为知道文本内容、字体和字体大小。 获取文本宽度后,我可以回过头来设置标签的宽度。

-

目的

我想在 STATIC 标签的 TEXT 之后直接插入一个 EDIT 控件

-

编辑

上网查了一下,说是用GetTextExtentPoint32

SIZE textSize;
GetTextExtentPoint32(GetDC(hwnd), text, strlen(text), &textSize);

但是我在哪里可以指定这个函数中的字体/字体大小呢?

最佳答案

通过使用函数 GetTextExtentPoint32,如下所示:

SIZE textSize;
GetTextExtentPoint32(GetDC(hwnd), text, strlen(text), &textSize);

并且之前使用SelectFont指定字体,这个问题就解决了。

关于c++ - win32 c++ 我想在 STATIC 标签的 TEXT 之后直接插入一个 EDIT 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58339699/

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