gobouさん>
目的をはずしていたらゴメンナサイ・・
CHOOSEFONT関数で選択した色はLONG型変数に入るそうなので私の場合は
変数 var shared RGBCOLOR as longと指定しておき
if CHOOSEFONT(FFONT,RGBCOLOR,-1,0) then
・・
後、印刷時フォント選択ダイアログで色を選択し、PRT1.SETFORECOLOR RGBCOLOR で
選択した色で印刷しています。
結果的に不都合なく使っていますが、使い方が違っていたらご指摘ください。
declare function SETWINDOWPOS lib "user32" alias "SetWindowPos" (byval HWND as long, byval HWNDINSERTAFTER as long, byval X as long, byval Y as long, byval CX as long, byval CY as long, byval UFLAGS as long) as long
var shared MAINFORM as object
var shared BUTTON1 as object
MAINFORM.ATTACH GETHWND
BUTTON1.ATTACH GETDLGITEM("BUTTON1")
declare sub MAINFORM_START edecl ()
sub MAINFORM_START()
'初期設定(フラグ)
FLG = 1
end sub
'コマンドボタンの処理
declare sub BUTTON1_ON edecl ()
sub BUTTON1_ON()
var RST as long
if FLG = 0 then
'「常に手前に表示」を解除
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_NOTTOPMOST, 0, 0, 0,0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
FLG = 1
BUTTON1.SETWINDOWTEXT "「常に手前に表示」する"
MAINFORM.SETWINDOWTEXT "現在は「ノーマル」状態です"
else if FLG = 1 then
'「常に手前に表示」をセット
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
FLG = 0
BUTTON1.SETWINDOWTEXT "「常に手前に表示を解除」する"
MAINFORM.SETWINDOWTEXT "現在は「常に手前に表示」状態です"
end if
end sub
sub MAINFORM_START()
TIMER1.SETINTERVAL 6000
TIMER1.ENABLE -1
FLG = 0
FORM_STATE
end sub
declare sub BUTTON1_ON edecl ()
sub BUTTON1_ON()
FLG = not(FLG)
FORM_STATE
end sub
sub FORM_STATE()
var RST as long
if FLG = 0 then
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_NOTTOPMOST, 0, 0, 0,0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
BUTTON1.SETWINDOWTEXT "「常に手前に表示」する"
MAINFORM.SETWINDOWTEXT "現在は「ノーマル」状態です"
else
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
BUTTON1.SETWINDOWTEXT "「常に手前に表示を解除」する"
MAINFORM.SETWINDOWTEXT "現在は「常に手前に表示」状態です"
end if
end sub
declare sub TIMER1_TIMER edecl ()
sub TIMER1_TIMER()
MAINFORM.SETFOREGROUNDWINDOW
end sub
(一部省略)で1分ごとにアクティブになりました。自己流のためひょっとしてとんでもないことをしているかも・・
var shared MAINFORM as object :MAINFORM.ATTACH GETDLGITEM("MAINFORM")
var shared TIMER1 as object :TIMER1.ATTACH GETDLGITEM("TIMER1")
var shared EDIT1 as object :EDIT1.ATTACH GETDLGITEM("EDIT1")
declare function SETWINDOWPOS lib "user32" alias "SetWindowPos" (byval HWND as long, byval HWNDINSERTAFTER as long, byval X as long, byval Y as long, byval CX as long, byval CY as long, byval UFLAGS as long) as long
declare sub MAINFORM_START edecl ()
sub MAINFORM_START()
TIMER1.SETINTERVAL 1000
TIMER1.ENABLE -1
end sub
declare sub TIMER1_TIMER edecl ()
sub TIMER1_TIMER()
beep
A= SETWINDOWPOS(MAINFORM.GETHWND, -1, 0, 0, 0, 0, &H43)
MAINFORM.SHOWWINDOW 0
MAINFORM.SETFOCUS
MAINFORM.SHOWWINDOW -1
EDIT1.SETFOCUS
A= SETWINDOWPOS(MAINFORM.GETHWND, -2, 0, 0, 0, 0, &H43)
end sub
declare function APIFINDWINDOW lib "user32" alias "FindWindowA" (byval LPCLASSNAME as string, byval LPWINDOWNAME as string) as long
var IE_HWND as long
IE_HWND = APIFINDWINDOW("IEFrame",byval 0)
tanakaさん>
RES = API_SETFOREGROUNDWINDOW(MENO_HWND)でアクティブ後
F-Basic自身のメインフォームをアクティブにするんですね?
RES = API_SETFOREGROUNDWINDOW(MAINFORM.GETHWND)でアクティブになりませんか?
佐藤さん>
RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA043,0)
一度コピーしたものをペーストしているようです。文字数の多いところで試すと時間が
かかりますし、
RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA042,0)の1行を抜くと選択解除にはなりま
せん。
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONDOWN,0,0)
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONUP,0,0)
のように、マウスをDOWNおよびUPの両方を送るといいようです。
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
var IE_HWND as long
IE_HWND = WINAPI_APIFINDWINDOW("IEFrame",byval 0)
if hex$(IE_HWND)<>"0" then
RET = WINAPI_POSTMESSAGE(IE_HWND,&H111,&HA044,0) 'すべて選択
RET = WINAPI_POSTMESSAGE(IE_HWND,&H111,&HA042,0) 'コピー
end if
exit sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
declare sub MainForm_Start edecl ()
sub MainForm_Start()
Button1.MoveWindow 100,50
Button1.SetWindowSize 80,25
Button1.SetFontName "MS 明朝"
Button1.SetFontSize 14
Button1.SetWindowText "abcde"
end sub
var shared text(30) as object
var shared edit(10) as object
for i = 1 to 30
text(i).attach getdlgitem("text"+trim$(str$(i)))
select case i
case 1 to 5
text(i).setfontsize 12
case 6 to 20
text(i).setfontsize 14
case else
text(i).setfontsize 20
end select
next i
for i = 1 to 10
edit(i).attach getdlgitem("edit"+trim$(str$(i)))
edit(i).setfontsize 14
next i