我有一个包含文本框组件的C程序。我想在这个文本框中有一个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
。
答案 0 :(得分:1)
追加文字
EM_SETSEL
消息,将选择内容移动到富编辑控件的末尾。使用WM_GETTEXTLENGTH
查找编辑控件中有多少个字符。EM_REPLACESEL
消息以替换选择。如果选择点位于控件的末尾,则替换与追加相同。请勿尝试使用WM_GETTEXT
& WM_SETTEXT
因为它很快变得低效,更不用说格式化没有保留。
格式化文字
使用EM_SETCHARFORMAT
格式化文字。有关详情请见MSDN。