MF C: как отобразить символ авторского права? - PullRequest
0 голосов
/ 01 апреля 2020

В настоящее время я запрашиваю информацию об авторских правах и отображаю ее с помощью DrawText. Но менее идеальным является то, что символ авторского права отображается как "(c)". Есть ли способ отобразить его в виде круга вокруг c? Я искал вокруг, но не нашел ни одного рабочего кода. Для справки, ниже, что я использую сейчас.

VerQueryValue(ver_info, TEXT("\\StringFileInfo\\01234567\\LegalCopyright"), &lplpBuffer, &sz);
strncpy(buf, (char *)lplpBuffer, sz);
m_copyright = (CString)buf;
pDC->DrawText(m_copyright, rc, DT_LEFT | DT_SINGLELINE);

Будет выведено «Copyright (c) ...», которое я хочу заменить на «(c)». Решение должно работать в Visual Studio 2008, если это возможно.

Следующий код показывает только uA9, а не символ авторского права.

void CMyView::OnDraw(CDC* pDC)
{
    CMyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    // TODO: add draw code for native data here
    CRect rect(50, 50, 200, 200);
    DrawTextW(pDC->GetSafeHdc(), L"\uA9", -1, rect, DT_LEFT | DT_SINGLELINE);
}

enter image description here

1 Ответ

0 голосов
/ 02 апреля 2020

Я предлагаю вам попробовать использовать этот символ «\ xa9» для отображения знака авторского права, например:

DrawTextW(pDC->GetSafeHdc(), L"\xa9", -1, rect, DT_LEFT | DT_SINGLELINE);

Примечание: пожалуйста, обратитесь к таблице символов utf8 здесь: https://www.utf8-chartable.de/unicode-utf8-table.pl?start=128&number=128&utf8=string-literal&unicodeinhtml=hex

...