スポンサーサイト
スポンサー広告上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。
その日の出来事を簡単に紹介する日記
#uselib "user32"
#func DrawText "DrawTextW" int,wptr,int,int,int
#uselib "kernel32"
#define CP_UTF8 65001 ; UTF-8
#func MultiByteToWideChar "MultiByteToWideChar" sptr,sptr,sptr,sptr,sptr,sptr
//----Unicode(UTF-16)
sdim h16,64 ;確保
lpoke h16,0,38<<24|97<<16|254<<8|255 ;Unicodeでハート(255 254 97 38)
;↓これと同等の処理
;poke h16,0,255 : poke h16,1,254 : poke h16,2,97 : poke h16,3,38
pos 50,50:sysfont 17
mes "Unicodeの文字を描画"
font msgothic,150,16
rect=ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy ;文字の描画領域
DrawText hdc,varptr(h16),-1,varptr(rect),0
redraw ;必須
//----UTF-8
;最終的にはUnicodeに変換しないといけない
sdim h8,64 ;確保
poke h8,0,239
poke h8,1,187
poke h8,2,191
poke h8,3,226
poke h8,4,153
poke h8,5,161 ;UTF-8でのハート(でかすぎフイタw 6byte)
pos 200,50:sysfont 17
mes "UTF-8の文字をUnicodeと同じように描画"
font msgothic,150,16
rect=ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy ;文字の描画領域
DrawText hdc,varptr(h8),-1,varptr(rect),0
pos 200,250:sysfont 17
mes "ですよねー。\n\nと言うわけで変換して描画"
sdim h8to16,64 ;変換後の変数
MultiByteToWideChar CP_UTF8, 0, varptr( h8 ), -1, varptr( h8to16 ), 255
font msgothic,150,16
rect=ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy ;文字の描画領域
DrawText hdc,varptr(h8to16),-1,varptr(rect),0
redraw ;必須
stop
MultiByteToWideChar CP_UTF8, 0, varptr( h8 ), -1, varptr( h8to16 ), 255
定数 | 意味 |
---|---|
CP_ACP | ANSI コードページ |
CP_MACCP | Macintosh コードページ |
CP_OEMCP | OEM コードページ |
CP_SYMBOL | シンボルコードページ(42) |
CP_THREAD_ACP | 現在のスレッドの ANSI コードページ |
CP_UTF7 | UTF-7 を使った変換 |
CP_UTF8 | UTF-8 を使った変換 |
#uselib "user32"
#func DrawText "DrawTextW" int,wptr,int,int,int
#uselib "kernel32"
#define CP_UTF8 65001 ; UTF-8
#func MultiByteToWideChar "MultiByteToWideChar" sptr,sptr,sptr,sptr,sptr,sptr
#func WideCharToMultiByte "WideCharToMultiByte" sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr
//----UTF-8
;最終的にはUnicodeに変換しないといけない
sdim h8,64 ;確保
poke h8,0,239
poke h8,1,187
poke h8,2,191
poke h8,3,226
poke h8,4,153
poke h8,5,161 ;UTF-8でのハート(でかすぎフイタw 6byte)
pos 50,30:sysfont 17
mes "UTF-8の文字をUnicodeと同じように描画"
font msgothic,100,16
rect=ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy ;文字の描画領域
DrawText hdc,varptr(h8),-1,varptr(rect),0
pos 50,170:sysfont 17
mes "ですよねー。\n\nと言うわけで変換して描画"
sdim h8to16,64 ;変換後の変数
MultiByteToWideChar CP_UTF8, 0, varptr( h8 ), -1, varptr( h8to16 ), 255
font msgothic,100,16
rect=ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy ;文字の描画領域
DrawText hdc,varptr(h8to16),-1,varptr(rect),0
pos 50,300:sysfont 17
mes "無事描画成功!じゃあ今度は戻してみよう!"
sdim h16to8,64 ;変換後の変数
WideCharToMultiByte CP_UTF8, 0, varptr( h8to16 ), -1, varptr( h16to8 ), 255, 0, 0
font msgothic,100,16
rect=ginfo_cx, ginfo_cy, ginfo_winx, ginfo_winy ;文字の描画領域
DrawText hdc,varptr(h16to8),-1,varptr(rect),0
redraw ;必須