HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0708
cd文字の斜め表示10解決


cd

リンク

2009/7/8(Wed) 16:27:51|NO.26275

題名のまま文字を斜めに表示したいです。
‘斜め’とはイタリック体のことではなく、文字列ごと傾けたようなアレです。

HSPの標準の命令では出来ないので、WinAPIを使って試みましたが
自分が(WinAPIに)あまり慣れていないせいかうまくできませんでした。
おそらく、「CreateFont」と「TextOut」などを組み合わせれば出来ると思うのですが。

誰か参考サイトやスクリプトを教えてください。
また、他に効率的な方法があればご指摘ください。



この記事に返信する


ux

リンク

2009/7/8(Wed) 17:06:31|NO.26276

イタリック体がないフォントは斜体で表示されるのでは?

font "MS ゴシック",20,2 mes "あいうえお ABCDEFG"



cd

リンク

2009/7/8(Wed) 17:16:43|NO.26277

イタリック体の事ではありません。っと述べたはずですが、
ちょっと押しが足りなかったですかね。

イメージ的には、ここの「Welcome to my Homepage」でしょうか。
http://builder.japan.zdnet.com/story_media/20388634/090220css-transform_184x138.jpg

当たり前ですが、文字は可変なので予め画像で用意することはできません。

よろしくお願いします。



cd

リンク

2009/7/8(Wed) 17:21:56|NO.26279

連投すいません。

大変失礼しました。
自分の中でイタリック体と斜体がごっちゃになってました。

言い続けてきた「イタリック体の事ではない」は、全て「斜体の事ではない」の誤りです。



珠後

リンク

2009/7/8(Wed) 17:25:54|NO.26280

buffer で作ったウィンドウに文字列を描画した後に
grotate で回転コピーしたらいいんじゃないですか?



b

リンク

2009/7/8(Wed) 17:29:57|NO.26281




cd

リンク

2009/7/8(Wed) 17:32:27|NO.26282

書かなかった私が悪いですが、grotateの回転コピーも試しました。

ですが文字が大きくないうえ、20〜25度という中途半端な角度であることもあって、
非常に読みにくいです。

本当に限定された注文ですいません。



cd

リンク

2009/7/8(Wed) 18:01:52|NO.26283

>>bさん
ありがとうございます。

ただ、その参考サイトを元に自分なりにやってみたのですが、
どうも日本語が文字化けしてしまいます。

#include "gdi32.as" CreateFont 40 , 0 , 100 , 100 ,FW_BOLD , FALSE , TRUE , FALSE ,SHIFTJIS_CHARSET , OUT_DEFAULT_PRECIS ,CLIP_DEFAULT_PRECIS , DEFAULT_QUALITY , VARIABLE_PITCH | FF_ROMAN , "MS ゴシック" hFont = stat SelectObject hdc, hFont TextOut hdc, 10, 100,"てすと", 3 DeleteObject hFont redraw 1 stop

対策方法を教えてください。



check

リンク

2009/7/8(Wed) 18:05:59|NO.26284

ANSIじゃなくてUNICODEを使えばいいんじゃね
HSPではデフォルトですべてANSIになっている

CreateFont→CreateFontW
TextOut→TextOutW



ux

リンク

2009/7/8(Wed) 18:09:41|NO.26285

CreateFont関数を使って再現できました。
注意としてはWindows NT/2000/XP/Vistaしか対応していません。

#uselib "gdi32" #cfunc CreateFont "CreateFontA" int,int,int,int,int,int,int,int,int,int,int,int,int,str #func DeleteObject "DeleteObject" int #func SelectObject "SelectObject" int,int #func SetGraphicsMode "SetGraphicsMode" int,int SetGraphicsMode hdc,2 ;グラフィックスモードをGM_ADVANCEDに変更 a = -100 ;角度(1/10度単位) s = 20 ;フォントサイズ f = "MS ゴシック" ;フォント名 hFont = CreateFont(s,0,0,a,500,0,0,0,128,0,0,0,0,f) ;フォント作成 SelectObject hdc,hFont mes "abcdefghijklmnopqrstuvwxyz" DeleteObject hFont



cd

リンク

2009/7/8(Wed) 18:11:45|NO.26286

checkさんの指摘通り修正したところ、無事に動作しました。

質問は以上で解決とします。
皆さん本当にありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.