C MFC设置/附加文本从Worker线程中从富裕的控件中进行

c++ MFC setting/appending text to a richedit control from a worker thread

本文关键字:控件 线程 Worker 设置 MFC 文本      更新时间:2023-10-16

从主线程中我可以使用成员变量这样:

    CString updatetext;
    updatetext.Format(L"character length: %dn", length );
    long nStart, nEnd;
    m_richeditcont.
    GetSel(nStart, nEnd);
    m_richeditcont.SetSel(nEnd, nEnd);
    m_richeditcont.ReplaceSel(updatetext);

但是,如果没有工人线程,该程序将悬挂。您不能使用工作线程中的成员变量,那么我将如何使用Worker线程中存储在UpdateText中的文本更新富裕的控件?

我没有任何实际代码,上面的代码只是一个示例,我只想知道如何将存储在UpdateText中的文本附加到Worker线程中的RichEdit控件中。

工人线程可以使用后消息或sendmessage将数据发送到GUI线程。那么GUI线程应负责修改GUI。在此处查看常见问题12:

http://vcfaq.mvps.org/mfc/index.htm

Worker线程应在堆上分配CSTRING,然后在自定义消息的LPARAM或WPARAM中发布指针。GUI线程将指针置于CSTRING*并更新控件。最后,GUI线程从堆中删除CSTRING。