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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0818
ぴょぴょタスクアイコンは消せないのでしょうか?5解決


ぴょぴょ

リンク

2014/8/18(Mon) 19:40:50|NO.63947

screen 命令に SCREEN_TOOL 定数を付けるとタスクバーにタスクアイコンは表示されませんね。
でも、bgscr 命令では SCREEN_TOOL 定数を付けてもタスクアイコンが消えません。なぜ?
#uselib "User32.dll"
#func GetWindowLong "GetWindowLongA" sptr,sptr #func SetWindowLong "SetWindowLongA" sptr,sptr,sptr #func SetWindowPos "SetWindowPos" sptr,sptr,sptr,sptr,sptr,sptr,sptr # #const GWL_EXSTYLE $FFFFFFEC #const WS_EX_TOPMOST $00000008 #const WS_EX_ACCEPTFILES $00000010 #const WS_EX_TOOLWINDOW $00000080 #const WS_EX_APPWINDOW $00040000 # #const SWP_NOSIZE $00000001 #const SWP_NOMOVE $00000002 #const SWP_NOZORDER $00000004 #const SWP_FRAMECHANGED $00000020 *Main bgscr 0,640,480,SCREEN_NORMAL|SCREEN_TOOL,0,0 GetWindowLong hWnd,GWL_EXSTYLE:n=(stat|WS_EX_TOPMOST|WS_EX_ACCEPTFILES|WS_EX_TOOLWINDOW) SetWindowLong hWnd,GWL_EXSTYLE,n SetWindowPos hWnd,0,0,0,0,0,(SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED) onkey gosub *OnKeyBoard mes "[Q]キーで終了します。" stop *OnKeyBoard if(iParam=='Q'):end return
上記のサンプルは、API関数で WS_EX_TOOLWINDOW 定数を追加してます。
しかし、それでもタスクアイコンが消えません。なぜ?

HSPの bgscr 命令では、タスクアイコンは消せないのでしょうか?



この記事に返信する


掘木

リンク

2014/8/18(Mon) 20:58:28|NO.63950

bgscrはWINDOW_TOOL定数に対応していません。

どうにも、bgscrにWS_EX_TOOLWINDOWを付与してもタスクボタンを表示しないようにすることはできないようです。
どこかのサイトで見かけた記憶があるけどもちょっとどこだったかは覚えてない・・・。
なので、詳しい理由は答えられないですね。

bgscrで作ったウィンドウをタスクボタンに表示しない方法・・・。
ダミーウィンドウを作り、それの子ウィンドウみたいなものに仕立て上げるのが楽かな。
(というかこの方法しか知らない)

#define GWL_HWNDPARENT (-8) #uselib "user32.dll" #func SetWindowLong "SetWindowLongA" int,int,int bgscr 0,,,2 mainhwnd = hwnd screen 1,,,2 SetWindowLong mainhwnd,GWL_HWNDPARENT,hwnd gsel 0,1



mamo

リンク

2014/8/18(Mon) 20:59:23|NO.63951




掘木

リンク

2014/8/18(Mon) 21:09:17|NO.63952

あれ、WS_EX_TOOLWINDOW付与で行けるのか・・・。

ウィンドウスタイル書き換え→ウィンドウ非表示→ウィンドウ再表示 でテストしてたから気付かなかった。
SetWindowLongをするとき非表示でないといけないわけか。



ぴょぴょ

リンク

2014/8/18(Mon) 21:17:23|NO.63953

mamoさんへ
リンクありがとうございます。

掘木さんへ
> SetWindowLongをするとき非表示でないといけないわけか。
きっとウインドウの表示/非表示しないとタスクバー・ウインドウは反応しないのでしょうね。

お二人ともアドバイスありがとうございました。
そう言えば、以前にC/C++でツールソフトを作成した時に
非表示→表示しないといけなかった経験を思い出しました。

すっかり忘れていました。
プログラマー時代は4年前で終わりましたので忘れていた。
現在、個人発明家に転職して活動中です。



mamo

リンク

2014/8/19(Tue) 01:55:37|NO.63963

>mamoさんへ〜
違う、お礼を言われると気持ち悪いので一つだけ。

ぐぐれ

って言いたかっただけです。



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