RichTextBox’s font changes automatically in C#

You need to clear these two flags IMF_DUALFONT and IMF_AUTOFONT to keep font unchanged.

uint lParam;
lParam = SendMessage(richTextBoxMessage.Handle, EM_GETLANGOPTIONS, 0, 0);
lParam &= ~(IMF_DUALFONT | IMF_AUTOFONT);
SendMessage(richTextBoxMessage.Handle, EM_SETLANGOPTIONS, 0, lParam);
private const uint IMF_AUTOFONT = 0x02;
private const uint IMF_DUALFONT = 0x80;
private const uint WM_USER = 0x0400;
private const uint EM_SETLANGOPTIONS = WM_USER + 120;
private const uint EM_GETLANGOPTIONS = WM_USER + 121;
[System.Runtime.InteropServices.DllImport("USER32.dll")]
private static extern uint SendMessage(System.IntPtr hWnd, uint msg, uint wParam, uint lParam);

Leave a comment

Your email address will not be published. Required fields are marked *