>input内をboxfで塗りつぶそうとしているのですが、うまくできません。
>何かいい方法は無いでしょうか。
「input内をboxfで塗りつぶす」=inputボックスの背景色を変更、ですね。たぶん。
Kpanさんのところにサンプルがあるので、どーぞ。
→
http://lhsp.s206.xrea.com/hsp_object2.html#2
>字を打つときに点滅しているものを消す
「字を打つときに点滅しているもの」=キャレット、ですね。たぶん。
hspailさんのサンプルにあるDestroyCaret関数ですが、「WinAPI Database for VB Programmer」の該当ページ(
http://www.winapi-database.com/Graphics/Caret/DestroyCaret.html)によると、
>この関数はCreateCaret()関数を使用して作成したキャレットを破棄するときに使う
>キャレットを一時的に非表示・表示させるにはHideCaret()関数とShowCaret()関数を使う
となっています。したがって、今回の場合については不適切かと。
そもそも、、「キャレット 非表示 HSP」で検索するとHideCaret関数を使ったサンプルが出てきますね(
http://hp.vector.co.jp/authors/VA034028/tips/kowaza/ninput.html)。
一応、自作のサンプルも載せておきます。せっかく作ったので。
#define ctype HIWORD(%1) (%1 >> 16) & 0xFFFF
#uselib "user32.dll"
#func HideCaret "HideCaret" int
#const WM_COMMAND 0x0111
#const EN_SETFOCUS 0x0100
flag = 0
oncmd gosub *onCommand, WM_COMMAND
button gosub "表示しない", *label
idButton = stat
wait 10
a=""
input a, 180, 24
b=""
mesbox b, 180, 120
stop
*label
if flag = 0 {
flag = 1
objprm idButton, "表示する"
} else {
flag = 0
objprm idButton, "表示しない"
}
return
*onCommand
switch HIWORD(wParam)
case EN_SETFOCUS
if flag = 1 : HideCaret lParam
swbreak
swend
return