Как я могу написать несколько строк в текстовое поле, используя python win32? - PullRequest
1 голос
/ 01 августа 2011

У меня есть программа на C, которая имеет компонент textbox. Я хочу, чтобы Python GUI записывал текст в это текстовое поле. В настоящее время я могу написать в текстовое поле HWND, используя:

def winFunc(hwnd, lparam):
    s = win32gui.GetWindowText(hwnd)
    if s == "":
        win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, 0, lparam)

hwnd = win32gui.FindWindow("Graph Program", None)
win32gui.EnumChildWindows(hwnd, winFunc, text)

Этот код будет записывать текст в текстовое поле, но он не может добавлять текст на новую строку в текстовое поле. Можно ли прочитать текст, который в данный момент находится в текстовом поле, или можно добавить текст в текстовое поле? Я новичок в использовании Windows API. Кроме того, возможно ли написать текст другим цветом? Класс текстового поля: RICHEDIT20A.

1 Ответ

1 голос
/ 01 августа 2011

Добавление текста

  1. Отправьте сообщение EM_SETSEL, чтобы переместить выделение в конец элемента управления расширенного редактирования.Используйте WM_GETTEXTLENGTH, чтобы узнать, сколько символов в элементе управления редактированием.
  2. Отправьте сообщение EM_REPLACESEL, чтобы заменить выбор.Если точка выбора находится в конце элемента управления, то замена аналогична добавлению.

Не пытайтесь использовать WM_GETTEXT & WM_SETTEXT, поскольку она быстро становится неэффективной, а не дляотметьте тот факт, что форматирование не сохраняется.

Форматирование текста

Используйте EM_SETCHARFORMAT для форматирования текста.Более подробная информация на MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...