0

我正在尝试在 MFC 中显示 QR 码CRichEditCtrl,但生成的尺寸太小了。

这是我用来将 QR 放入编辑控件的代码:

    SETTEXTEX TextInfo = {0};
    TextInfo.flags = ST_SELECTION;
    TextInfo.codepage = CP_UTF8;
    LRESULT res = ::SendMessage(m_editQR.m_hWnd, EM_SETTEXTEX, (WPARAM)&TextInfo, (LPARAM)buffer);

“buffer”参数是一个char数组;其内容是从包含二维码字符串的 UTF-8 文件中读取的。此文件在 Notepad++ 中以这种方式显示:

Notepad++中显示的二维码

如果我在为测试制作的控制台应用程序中打印相同的缓冲区,QR 码也会正确显示。

但是,二维码显示在我的 MFC 测试应用程序中,如下所示:

MFC 富编辑 ctrl 中显示的小 QR

用于呈现 QR 的字体大小似乎存在问题(我使用的是 Rich Edit 控件的默认值)。所以我试图改变字体及其大小。

这是我用来设置 char 格式的代码:

CHARFORMAT selCharformat;
m_editQR.GetSelectionCharFormat(selCharformat);
selCharformat.cbSize = sizeof(CHARFORMAT);
selCharformat.dwMask = CFM_FACE | CFM_SIZE | CFM_CHARSET;
selCharformat.yHeight = 20*8;
selCharformat.bCharSet = DEFAULT_CHARSET;
selCharformat.bPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
lstrcpy(selCharformat.szFaceName, _T("Console")); 
BOOL bRes = m_editQR.SetSelectionCharFormat(selCharformat);

但随后 QR 就搞砸了,像这样:

更改字符格式后编辑控件中的二维码

我想我的 Rich Edit ctrl 的设置有问题,但找不到正确的设置(我对 MFC 不是很有经验)。

你们能帮忙吗?

4

0 回答 0