Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python win32将多行写入文本框?_Python_C_Winapi_Textbox - Fatal编程技术网

如何使用python win32将多行写入文本框?

如何使用python win32将多行写入文本框?,python,c,winapi,textbox,Python,C,Winapi,Textbox,我有一个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 Prog

我有一个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

  • 发送消息以将所选内容移动到rich edit控件的末尾。使用
    WM_GETTEXTLENGTH
    查找编辑控件中的字符数
  • 发送消息以替换所选内容。如果选择点位于控件的末尾,则替换与追加相同
  • 不要试图使用
    WM_GETTEXT
    &
    WM_SETTEXT
    ,因为它很快就会变得效率低下,更不用说格式没有保留

    格式化文本


    使用设置文本格式。更多详细信息请访问。

    追加文本

  • 发送消息以将所选内容移动到rich edit控件的末尾。使用
    WM_GETTEXTLENGTH
    查找编辑控件中的字符数
  • 发送消息以替换所选内容。如果选择点位于控件的末尾,则替换与追加相同
  • 不要试图使用
    WM_GETTEXT
    &
    WM_SETTEXT
    ,因为它很快就会变得效率低下,更不用说格式没有保留

    格式化文本


    使用设置文本格式。更多详细信息请参阅。

    我仍然无法找到更改文本颜色的方法,以便在python中每个附加行都是一种新颜色。我找不到使用python调用EM_SETCHARFORMAT的方法。我在考虑win32gui.SendMessage(hwnd,EM_SETCHARFORMAT,SCF_SELECTION,format),但我也不知道如何(在python中)指定Charformat结构。我想您可能需要使用ctypes结构类来复制
    Charformat
    。我还要指出,你应该一次问一个问题。你问了关于添加文本和设置文本格式的问题。我发布了一个新问题,重点是颜色格式@gh4x很好,我想这正是应该做的。我仍然找不到一种方法来更改文本颜色,以便在python中每个附加行都是一种新颜色。我找不到使用python调用EM_SETCHARFORMAT的方法。我在考虑win32gui.SendMessage(hwnd,EM_SETCHARFORMAT,SCF_SELECTION,format),但我也不知道如何(在python中)指定Charformat结构。我想您可能需要使用ctypes结构类来复制
    Charformat
    。我还要指出,你应该一次问一个问题。你问了关于添加文本和设置文本格式的问题。我发布了一个新问题,重点是颜色格式@gh4x很好,我想这正是应该做的。