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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0911
774ウィンドウを非アクティブにする方法5解決


774

リンク

2009/9/11(Fri) 18:47:27|NO.27645

screen 0 と 1 を用意し、screen 1 を常にアクティブにして
screen 0 がアクティブになった場合、すぐに screen 1 に戻るような
処理をしたいです。
以下のようなコードを書いたのですが
screen 1 がアクティブになるものの
screen 0 のタイトルバーが青いまま & タスクトレイの 0 がへこんだまま
となってしまいます。

希望としては
screen 1 がアクティブになったら
screen 0 のタイトルバーを白くしたい & タスクトレイの 1 がへこんで欲しい
のですが、どのように修正すれば良いでしょうか?

また、screen 0 をアクティブにする際
・screen 0 のタイトルバーをクリックする
・screen 0 の白い部分をクリックする
で、動作が少し違うようです。
当方の環境は WindowsXP Home SP2 + HSP 3.1 です。
よろしくお願いします。


title "0" oncmd gosub *WMACTIVATE, 0x00000006 // 0x0006=WM_ACTIVATE sc0=hwnd screen 1 title "1" stop *WMACTIVATE if( (wparam & 0xFFFF)!=0 ){ // screen 0 がアクティブになる場合 gsel 1, 1 // screen 1 をアクティブにして sendmsg sc0, 0x00000086, 0, 0 // screen 0 を非アクティブに // 0x00000086=WM_NCACTIVATE } return



この記事に返信する


KA

リンク

2009/9/11(Fri) 20:54:39|NO.27646

取りあえず、現象は確認できました、次のスクリプトじゃダメなのかな?


title "0" screen 1 title "1" *qq gsel 1, 1 wait goto *qq

ウインドウメッセージを使う必要が有るのなら、別ですが・・・
変な動作については、私では分かりません。



774

リンク

2009/9/11(Fri) 21:19:06|NO.27647

言葉足らずですみません。
最初に書いたコードは設計中のアプリの一部で、
ループの中では他の処理をしてて、
できれば WM_ACTIVATE メッセージを受けて oncmd で処理する
方法にしたいです。

・screen 0 がアクティブになってしまった場合、非アクティブにする方法
もしくは
・screen 0 を一時的にアクティブ禁止にする方法
でも OK です。
よろしくお願いします。



KA

リンク

2009/9/11(Fri) 21:28:18|NO.27649

>>・screen 0 がアクティブになってしまった場合、非アクティブにする方法
>>もしくは
>>・screen 0 を一時的にアクティブ禁止にする方法
>>でも OK です。

gsel で F1(HELP) ・・・
(調べた上での質問なのか分かりませんが)

望み通りになるかは分かりません。



あまま

リンク

2009/9/16(Wed) 12:52:53|NO.27715

この↓サイトにある「ウィンドウを反応させなくする。」
http://www.placeark.com/program_hsp_sample.html
というサンプルのようなものでしょうか?



774

リンク

2009/9/19(Sat) 13:33:27|NO.27778

> この↓サイトにある「ウィンドウを反応させなくする。」
> http://www.placeark.com/program_hsp_sample.html
> というサンプルのようなものでしょうか?

教えて頂いてありがとうございました。
これを参考にしてみます。



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