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

问题描述 投票:0回答:1

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

            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位置标签的位置和宽度。如果我手动指定标签宽度,则不能确保标签宽度恰好适合文本宽度,因为我实际上不知道该标签的文本宽度

我想知道如何使标签宽度完全适合其文本宽度

。也许我可以获取文本宽度,因为知道文本的内容,字体和字体大小。在获得文本宽度之后,我可以回头再设置标签的宽度。

-

目的

我要插入EDIT控件紧接在后

静态标签的文本

-

编辑

搜索了互联网,并说要使用GetTextExtentPoint32

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

但是我在哪里可以在此功能中指定字体/字体大小?

要制作STATIC标签,我可以使用:HWND hwnd_ques = CreateWindow(TEXT(“ STATIC”),TEXT(“ Yao happy swallow is”),WS_VISIBLE | WS_CHILD,...

c++ windows winapi hwnd
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.