我想更改使用键盘上的 Alt+Unicode 代码插入的 unicode char。我使用 PretranslateMessage 更改直接从键盘插入的字符并且它有效。但是对于 Alt+Unicode 代码方法,它不会。这是代码:Microsoft Word 在启用显示/隐藏段落标记时具有此功能。
BOOL CEmphasizeEdit::PreTranslateMessage(MSG* msg)
{
if (msg->hwnd == m_hWnd)
{
if (msg->message == WM_CHAR)
{
if (TheApp.Options.m_bShowWSpaceChars)
{
if (msg->wParam == ' ') // This works in both cases Space key pressed or Alt + 3 + 2 in inserted
{
msg->wParam = '·';
}
else if (msg->wParam == (unsigned char)' ') // this does not work
{
msg->wParam = (unsigned char)'°';
}
}
}
}
return CRichEditCtrl::PreTranslateMessage(msg);
}
如果我从键盘 Alt + 0 + 1 + 6 + 0 插入“”(无分隔符),我希望 CRichEditCtrl 显示“°”或我指定的其他字符。
我该如何处理才能使其正常工作?