Я могу воспроизвести эту проблему, как показано на снимке:
Кажется, что функция для центра вертикального выравнивания не поддерживается. Я отправил запрос на добавление внутренней функции.
Обходной путь использует EM_SETRECT , который может перемещаться вверх по текстовой области через ограничивающий прямоугольник, в который элемент управления dr aws текст. Следующие снимки показывают его эффекты:
Затем вы можете использовать его для настройки текст для отображения в центре между верхом и низом.
Пример кода:
HWND hwndEdit = CreateWindowEx(
0,
MSFTEDIT_CLASS,
TEXT("EDIT"),
WS_BORDER | WS_VISIBLE | WS_CHILD,
20,
20,
100,
32,
hWnd,
NULL,
hInst,
NULL);
RECT rect;
SendMessage(hwndEdit, EM_GETRECT, 0, (LPARAM)&rect);
rect.top -= 2;
rect.bottom -= 2;
SendMessage(hwndEdit, EM_SETRECT, 1, (LPARAM)&rect);