【HSP3】Unicodeいろいろ

Unicodeいろいろ

Unicodeいろいろ

  • タグ:
  • タグはありません
#include "user32.as"
#include "gdi32.as"
#define DT_WORDBREAK 0x00000010
#define DT_EDITCONTROL 0x00002000
// http://hsp.tv/play/pforum.php?mode=pastwch&num=41339
#define WS_CHILD $40000000
#define WS_VISIBLE $10000000
#define WS_BORDER $800000
#define WS_TABSTOP $10000
#define ES_AUTOHSCROLL $80
#define STYLE WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL
#define UNKNOWN $200 ; HSPEX
#define WM_SETFONT 0x0030
//
//
font "", 18, 16 : objmode 2, 1
pos 0, 0
// input使winobj
;sdim dummy
;input dummy, 640, 34 : objid_input = stat : hobj_input = objinfo(objid_input, 2)
objsize 640, 34
winobj "Edit", "", UNKNOWN, STYLE : objid_input = stat : hobj_input = objinfo(objid_input, 2)
// winobj()
mref BMSCR, 67
CreateFontIndirect varptr(BMSCR(49))
hFont = stat
sendmsg hobj_input, WM_SETFONT, hFont, 1
//
objsize 320, 34
button gosub "()", *s1
button gosub "()", *s2
button gosub "()", *s3
button gosub "()", *s4
onexit gosub *exit
stop
*s1
// input(objprm使)
string.0 = 0x0bf50bf5,0x0bf50bf5,0x0bf50bf5,0x0bf50bf5,0x0bf50bf5,0x0bf50bf5
string.6 = 0x0bf50bf5,0x0bf50bf5,0x0bf50bf5,0x0bf50bf5,0x0bf50bf5,0x0bf50bf5
string.12 = 0
//
SetWindowTextW hobj_input, varptr(string)
return
*s2
// input(objprm使)
sdim s
cnvstow s, "♪"
//
SetWindowTextW hobj_input, varptr(s)
return
*s3
//
sdim uni_word, 1024*2 + 2
GetWindowTextW hobj_input, varptr(uni_word), 1024
//
color 255,255,255 : boxf : color
//
rect = 0, 200, 640, 480
DrawTextW hdc, varptr(uni_word), -1, varptr(rect), DT_WORDBREAK | DT_EDITCONTROL
redraw
return
*s4
// 0xXXXX
sdim uni_word, 1024*2 + 2
GetWindowTextW hobj_input, varptr(uni_word), 1024
num = stat
if num == 0 : dialog "" : return
// 0xXXXX
sdim sf
repeat num
sf += strf("0x%04X ", wpeek(uni_word, cnt*2))
loop
sf += "\n↑Unicode(UTF-16)"
//
color 255,255,255 : boxf : color
//
rect = 0, 200, 640, 480
DrawTextA hdc, varptr(sf), -1, varptr(rect), DT_WORDBREAK | DT_EDITCONTROL
redraw
return
*exit
//
DeleteObject hFont
end
return
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX