无法使用winapi c向RichEdit控件发送消息#

问题描述 投票:1回答:1

我目前正在研究非托管外部代码自动化的解决方案,因此我在将文本设置为RichEdit控件时遇到了一些麻烦。

我已经尝试发送WM_SETTEXT,但它只将字符串的第一个字母设置为控件。

我试过的其他东西:PostMessage,EM_SETTEXTEX,SetWindowText,并且我没有成功尝试EM_STREAMIN,但是没有足够简单的消息示例。

richEdit的具体类是:WindowsForms10.RichEdit20W.app.0.141b42a_r14_ad1

我的代码:

IntPtr Text;
string bar;

...

//Function call
setRichEditText(Text, bar);

...

//Function declaration
private static int setRichEditText(IntPtr hWnd, string text) {
    StringBuilder sb = new StringBuilder(text);
    int result = SendMessage(hWnd, WM_SETTEXT, (IntPtr)sb.Length, sb.ToString());
    return result;
}

...

//Imported function
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hwnd, int msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPStr)] string lParam);

有没有办法让它设置整个字符串或可能是一个解决方法?

c# winapi user32 richedit
1个回答
0
投票

终于解决了!

使用:

SendMessage(hWnd, WM_SETTEXT, 0, sb.ToString());
© www.soinside.com 2019 - 2024. All rights reserved.