掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字列を縦書きで書きたい (ID:125128)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ガッ殿 ご紹介いただいたCreateOntIndirectで探してサンプルを見つけてやってみました。 http://support.microsoft.com/default.aspx?scid=kb;ja;154515 その結果英語ならうまくいくことがわかりましたが漢字を入れると回転した日本語文字が文字化けしてしまいます。 もちろんlfFaceNameも日本語にしましたがダメでした。 どこかに不足するところがあるのでしょうか?いろいろいじりましたがどうやってもわかりませんのでアドバイスをお願いします。 Sub Command1_Click() Dim font As LOGFONT Dim prevFont As Long, hFont As Long, ret As Long Const FONTSIZE = 20 ' Desired point size of font font.lfEscapement = 2700 ' 180-degree rotation font.lfFaceName = FontName ' & Chr$(0) 'Null character at end 'font.lfFaceName = "Arial" & Chr$(0) 'Null character at end ' ' Windows expects the font size to be in pixels and to ' be negative if you are specifying the character height ' you want. font.lfHeight = (FONTSIZE * -20) / Screen.TwipsPerPixelY hFont = CreateFontIndirect(font) prevFont = SelectObject(Picture1.hdc, hFont) Picture1.CurrentX = Picture1.ScaleWidth / 2 Picture1.CurrentY = Picture1.ScaleHeight / 5 Picture1.Print "東京都中央区" '"Rotated Text" ' Clean up by restoring original font. ret = SelectObject(Picture1.hdc, prevFont) ret = DeleteObject(hFont) Picture1.CurrentY = Picture1.ScaleHeight / 2 Picture1.Print "東京都中央区" End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.