none
文字列に含まれる特定の文字が回転して表示されます RRS feed

  • 質問

  • Windows embedded compact 7環境に於いて、以下のコードを実行します。

    LOGFONT
             standard_32 = {
                32,                         // nHeight
                0,                          // nWidth
                0,                          // nEscapement
                0,                          // nOrientation
                FW_DONTCARE,                // fnWeight
                0,                          // fdwItalic
                0,                          // fdwUnderline
                0,                          // fdwStrikeOut
                DEFAULT_CHARSET,            // fdwCharSet
                OUT_DEFAULT_PRECIS,         // fdwOutputPrecision
                CLIP_DEFAULT_PRECIS,        // fdwClipPrecision
                DRAFT_QUALITY,              // fdwQuality
                FIXED_PITCH | FF_MODERN,    // fdwPitchAndFamily
                NULL                        // lpszFace
                };
    
    HFONT
       standard = CreateFontIndirect ( &standard_32 ),
       OrgFont = SelectObject ( MsWin.ShadowDC,  standard  );
    
    wchar_t test [] = _T ("ただもか");
    
    SetBkMode ( MsWin.ShadowDC, TRANSPARENT );
    ExtTextOut ( MsWin.ShadowDC, Xpos, Ypost, NULL,
                              NULL, (LPCWSTR) test, 4, NULL );
    
       SelectObject ( MsWin.ShadowDC, OrgFont );
    

    文字列「ただもか」の内、「だ」と「も」だけが90°回転して表示されます。

    私が気づいているのは、「だ」と「も」及び「→」などです。

    なぜこの様な現象が発生するのか、お気づきの方が居られましたら、お教えください。

    2019年8月8日 10:17

回答

  • 自己解決です。

    LOGFONT構造体のfdwCharSetメンバの設定が、上のプログラムコードの例の様に「DEFAULT_CHARSET」になっておらず、「SHIFTJIS_CHARSET」になっていました。

    一方、プロジェクト > プロパティの「文字セット」は「Unicode」であったため、LOGFONT構造体のfdwCharSetメンバを「DEFAULT_CHARSET」に書き換えて試したところ、文字列は正常に表示できることを確認しました。

    お騒がせ致しました。

    2019年8月8日 11:02