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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0509
ww302jpbgscr命令(又は同じような命令)でタスクバーを表示させない方法…5解決


ww302jp

リンク

2009/5/9(Sat) 18:44:22|NO.25069

bgscr命令(又は同じような命令)でタスクバーを表示させない方法を教えて下さい。
色々検索してみましたが、見つからなかったので質問させて頂きます。



この記事に返信する


hspail

リンク

2009/5/9(Sat) 19:00:54|NO.25070


#uselib "user32" #cfunc GetWindowLong "GetWindowLongA" int, int #func SetWindowLong "SetWindowLongA" int, int, int #define GWL_EXSTYLE -20 #define WS_EX_TOOLWINDOW 0x0080 gsel 0, -1 bgscr 1, 640, 480, 2 SetWindowLong hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_TOOLWINDOW gsel 1, 1

こういうこと?
それともタスクバー自体を非表示にしたいのかな?



ww302jp

リンク

2009/5/9(Sat) 19:11:11|NO.25071

hspailさん回答ありがとうございます。
実行したところ望み通りの動作をしました。
やはりWindowsAPIを使わないと無理なんでしょうか?
なるべく標準命令でしたかったんですけどね。。
あとこれはどう言う仕組みでしょうか??
bgscrの画面モードの値を2(ウィンドウ非表示)にして、
SetWindowLongで何かの操作を行って
gselで再び表示させると言う感じでしたが…
初心者の私から見るといちいち非表示にしなくても良いのではとか思ってしまう(笑)のですが、必要なんですよね。
私はWindowsAPIについてあまり知らないので教えて下さい。



hspail

リンク

2009/5/9(Sat) 19:52:21|NO.25073

> やはりWindowsAPIを使わないと無理なんでしょうか?
HSP2 のときはツールウィンドウをつくれたのですが、HSP3 では API を使わないとできなくなってしまいました。
スクリプトの一部に API を使うのに何も問題はありませんよね?


>あとこれはどう言う仕組みでしょうか??
「始めはタスクバーに表示されているけど、あるきっかけで非表示にしたい」ということをするのではなければ、
ウィンドウの作成時に WS_EX_TOOLWINDOW を指定するのが普通です。
ですが HSP3 ではウィンドウ作成時に、決められたウィンドウスタイル(bgscrでは 1 or 2)しか指定できません。

ということは必然的にウィンドウ作成後に、ウィンドウスタイルを変更する必要があります。
そのような時には、「動的に」表示を切り替える必要があります。
「動的に」変更するには、

一度ウィンドウを非表示にし(タスクバーのボタンも非表示なる)

ウィンドウスタイルを変更

ウィンドウを表示する

という一連の動作が必要になります。
ウィンドウを非表示にせずに SetWindowLong をしてみるとわかると思いますが、タスクバーに表示されたままになってしまいます。


何となくわかってもらえたでしょうか?
文章下手ですみません_(_ _)_



ww302jp

リンク

2009/5/9(Sat) 21:05:53|NO.25074

hspailさん回答ありがとうございます。
なるほど。分かりやすい説明ありがとうございます。ためになります。
WindowsAPIを使った上で問題は特に無いのですが、
私自身先ほども述べた通りあまり触れていなくて分からないのでなるべく避けたかっただけです。
ですが、分かりやすい説明のお陰でなんとか理解できそうです。
また質問するかもしれませんが、その時はお願いします。



ww302jp

リンク

2009/5/9(Sat) 22:56:31|NO.25079

解決を忘れてたのでチェックしました。



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