Для создания метки 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
Однако я хочу вставить элемент управления EDIT сразу после TEXT метки STATIC, то есть я сделаю так, чтобы ширина метки соответствовала ширине его текста, и назначуX ПОЗИЦИЯ РЕДАКТИРОВАНИЯ в соответствии с положением и шириной этикетки. если я укажу ширину метки вручную, он не сможет убедиться, что ширина метки точно точно соответствует ширине текста , потому что я на самом деле не знаю ширину текста этой метки.
Интересно, как я могу сделать ширину метки ТОЛЬКО ТОЧНОЙ шириной текста . Возможно, я смогу получить ширину текста , зная содержание текста, шрифт и размер шрифта. После получения ширины текста , затем я могу повернуть назад, чтобы установить ширину этикетки.
-
НАЗНАЧЕНИЕ
Iхотите вставить элемент управления EDIT сразу после TEXT метки STATIC
-
EDIT
Поискал в интернете и там написано GetTextExtentPoint32
SIZE textSize;
GetTextExtentPoint32(GetDC(hwnd), text, strlen(text), &textSize);
Но где я могу указать размер шрифта / шрифта в этой функции?