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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1229
Sadoデスクトップマスコット/ウィンドウ操作関係8解決


Sado

リンク

2015/12/29(Tue) 07:21:24|NO.73821

おはようございます
同じ質問を繰り返すようで本当に情けなく思います……



2つの問題を抱えています。
まず1つは、
枠なしウィンドウをスクリーン解像度いっぱいに初期化して描画するのと
枠なしウィンドウをキャラサイズで初期化してウィンドウを動かすのと
どちらが内部処理的に安定しているのか、軽いのかと疑問に思い、混乱しています。
※いずれも、hsp標準の描写命令を基本に指定色透過ウィンドウなスタイルを適用

個人的には、「描画領域を大きく確保しているっぽいから解像度いっぱいに
初期化するのは無駄が多いに違いない!」と考えています。(P検4級程度の知恵)
一方で、「ウィンドウの位置を動かすのは、何か、hspの枠を超えてよく分からない
やばい処理が行われていそう!!!」なんて想像もしています。(P検4級程度の知恵)
そろそろ基本情報技術者やP検3~2級の参考書でも買わなきゃなと今更ながら思いました。



2つ目は、今のところ目立って問題は起きていないのですが、
自分でかなり不安な処理をしていると思った部分についての質問です。
最前面表示させるのに、自分はgsel ,2を一定時間毎(毎秒など)に実行させています。
タスクバーなどに隠れてしまうことを防止するためです。
これはかなり強引な事をしているように感じるので
何か別の方法があるのではと思った次第です。



この記事に返信する


kanamaru

リンク

2015/12/29(Tue) 08:26:07|NO.73823

キャラサイズと言うより、キャラの輪郭線に合わせてリージョン作った方が、
無駄はないように思います。
ウィンドウの移動は別にやばい処理してないと思いますが。
だって多分ウィンドウのドラッグ時って同じ処理使われているし。
gselは、特にループとかする必要はないと思います。
デスクトップマスコットがタスクバーの上に来てること見たことないし、
タスクバーの領域を行動範囲外にするのもいいと思います。



Sado

リンク

2015/12/29(Tue) 09:24:15|NO.73824

リージョンってオブジェクトですよね。
表示画像を変えるたびにリージョンオブジェクトを作って、
ウィンドウに適用して…となると大変な気がします。
(gdiオブジェクト関する知識が乏しいので、今言っている事があっているかどうか不安)

数枚の画像をアニメーションさせるデスクトップマスコットには不向きなのでは…



gselはもう、ループで使うな!ってことですね!
タスクバーに被さるな!って……



kanamaru

リンク

2015/12/29(Tue) 09:45:56|NO.73825

hsp デスクトップマスコット
とかで検索してみました?
リージョン使う方法が普通に出てくると思いますよ。



Sado

リンク

2015/12/29(Tue) 11:16:43|NO.73829

リージョンを用いて作るものなんですね。
黒透過のレイヤードスタイルが簡単だからと逃げてしまっていました……

hspwikiから「不定形リージョン/一番遅いけど単純」を使わせて頂いて、
いくらか試してみましたが、
51msも取られてしまうのは少し重たすぎるかなぁと思います。
環境依存なのは分かりますけれど、自分のパソコンは、化石と呼べるほど古くはありませんし!
キャラクターをアニメーションさせるには、画像を切り替える度に
リージョンの作成に時間が取られてしまう。
これは、もう、僕が頑張ってリージョン作成の処理を正すしかないんでしょうか……



リージョンの結合を如何にして効率よく行うか!という問題になってきた



Sado

リンク

2015/12/29(Tue) 17:59:23|NO.73840

あれ、これは解決したと判断していいのでしょうか?
>NO.73821(TOP)より

1つ目は、
ウィンドウは必要サイズ分確保したうえで、
レイヤードスタイルではなくリージョンウィンドウを作成する!
で落ち着いて、
不定形リージョンの作成のループ中の運用で躓いていると。

2つ目は、
gsel ,2をループ中に使う必要はなく、
そもそも、タスクバーの上に移動するようなデスクトップマスコットの作成は避けるべき、と。
タスクバーの上に表示させたい…気がしますけれど
タスクバーには触れちゃダメなんです!重要な部分だからgsel ,2が効かないんですきっと!




1つ目が、何だか腑に落ちない気がしますが、
このまま何も意見が無ければ解決とさせていただきます。



Sado

リンク

2015/12/29(Tue) 19:51:11|NO.73845

思ったのですが、
頻繁に描画領域が変わるアニメーションするデスクトップマスコットでは、
リージョンで描画領域を制限する意味があるのかと思い
リージョン作成にかかる時間がループ中に使えるものではないと、
意味ないか、じゃあレイヤードウィンドウを使おう!という結論に自己完結しました。

タスクバー上面に描写したい件については
タスクバーの上にキャラが描写されるのはマナー違反?かなぁと思いつつも
gselやapiなどを使ってどうにか設定してみようかなと考えてみました。




なんだか、このスレの存在意義が危うい結果に。
kanamaruさん、申し訳ありません、こんな分けわからないスレッドに付きあわせてしまって。



774

リンク

2015/12/29(Tue) 23:50:27|NO.73851

レイヤードウィンドウじゃダメという訳じゃないのですが、リージョンについて…
毎回破棄=>作成しなくとも、画像同様に予め用意して切り替えれば時間は掛からない気がします。



Sado

リンク

2015/12/30(Wed) 19:03:10|NO.73870

完全に失念していました
なんで消して作ってって馬鹿してたんだろう…



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