2016-12-11
フェードアウトも出来たっぽい~
なでしこ |
うぇいくさまに教えを頂き、取りあえずここをのぞいてみたところ・・・
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms632669(v=vs.85).aspx
なんてこった。どこで調べたらいいか分からんと言っていた、オプションの値の数値が、ふつーにちゃんと書いてあるじゃん!
そして、ぐーぐる翻訳さまの力を借りて内容を確認してみると・・・
値の意味 AW_ACTIVATE 0x00020000 ウィンドウをアクティブにします。 AW_HIDEでこの値を使用しないでください。 AW_BLEND 0x00080000 フェード効果を使用します。このフラグは、hwndがトップレベルのウィンドウである場合にのみ使用できます。 AW_CENTER 0x00000010 AW_HIDEが使用されている場合はウィンドウを内側に折りたたんで表示し、AW_HIDEを使用しない場合は外側に展開するようにします。さまざまな方向フラグは効果がありません。 AW_HIDE 0x00010000 ウィンドウを隠す。デフォルトでは、ウィンドウが表示されます。 AW_HOR_POSITIVE 0x00000001 ウィンドウを左から右にアニメーション表示します。このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDとともに使用すると無視されます。 AW_HOR_NEGATIVE 0x00000002 ウィンドウを右から左にアニメーション表示します。このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDとともに使用すると無視されます。 AW_SLIDE 0x00040000 スライドアニメーションを使用します。デフォルトでは、ロールアニメーションが使用されます。このフラグは、AW_CENTERとともに使用する場合は無視されます。 AW_VER_POSITIVE 0x00000004 ウィンドウを上から下にアニメーション表示します。このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDとともに使用すると無視されます。 AW_VER_NEGATIVE 0x00000008 ウィンドウを下から上にアニメーション表示します。このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDとともに使用すると無視されます。
こんな感じ。
あれれ~? AW_BLENDの所、別にAW_HIDE フラグと同時にセットするなとは書いてない~。
そして、代わりに「hwndがトップレベルのウィンドウである場合にのみ使用できます」と書いてるるる。要するに、親ウィンドウにしか使えない的な?
ってことは、フェードが使えるのはメインのフォームのみで、ボタンなどには使えなさそう?
試してみると、確かに、ボタンのロールイン、スライドインは出来ましたが、フェードインは利かず、パッと現れます。
そんなコト日本語のページには書いてなかったよ!
それなら!というわけで、恐る恐る窓フェードアウトも作ってみた。(やるなと言われたら、素直にやらない、ビビリなのです;)
ちなみに前回の窓フェードインは、アクティブにするのを忘れていたので、オプションを追加した。
#----------------------------------------------------------- ●窓フェードイン({グループ=?}OBJを{整数=500}Timeで) ハンドルはOBJ→ハンドル。 AniWin(ハンドル,Time,$80000||$20000) OBJ→可視はオン。 ●窓フェードアウト({グループ=?}OBJを{整数=500}Timeで) ハンドルはOBJ→ハンドル。 AniWin(ハンドル,Time,$80000||$10000) OBJ→可視はオフ。 #----------------------------------------------------------- ●窓アニメーション({グループ=?}OBJ,Time,A,OffOn,Slide) もし、(A=「左から右」)ならば、Flag=$1 違えば、もし、(A=「右から左」)ならば、Flag=$2 違えば、もし、(A=「上から下」)ならば、Flag=$4 違えば、もし、(A=「下から上」)ならば、Flag=$8 違えば、もし、(A=「中央」)ならば、Flag=$10 違えば、もし、(A=「左上から右下」)ならば、Flag=$1||4 違えば、もし、(A=「右上から左下」)ならば、Flag=$2||4 違えば、もし、(A=「左下から右上」)ならば、Flag=$1||$8 違えば、もし、(A=「右下から左上」)ならば、Flag=$2||$8 違えば、Flag=$1 もし、OffOn=オフならば、Flag=Flag||$10000 違えば、Flag=Flag||$20000 もし、Slide=オンならば、Flag=Flag||$40000 ハンドルはOBJ→ハンドル。 AniWin(ハンドル,Time,Flag) OBJ→可視はオン。 #----------------------------------------------------------- ●AniWin(hwnd,dwTime,dwFlags) =DLL("user32.dll", "BOOL AnimateWindow( HWND hwnd, // アニメーション化するウィンドウのハンドル DWORD dwTime, // アニメーションの時間 DWORD dwFlags // アニメーションの種類 )") #----------------------------------------------------------- #以下はテスト !母艦設計=『母艦の可視はオフ』 0.5秒待つ 文字サイズは25 母艦を白色で画面クリア。基本Xは10。基本Yは10。 『フェードイン・アウトの実験』と表示。 母艦を1000で窓フェードイン。 2秒待つ。 母艦を1000で窓フェードアウト。 2秒待つ。 終わる。 #-----------------------------------------------------------
とりあえず、できた~♪
・・・のですが、母艦にボタンなどの部品が乗ってた場合、ボタンなどはフェードせず、母艦が表示されてからパッと出てくるみたい。(フェードアウトの時は、母艦と一緒にじわじわ消えてく)
それはまあいいんだけど、母艦を(どの方法ででも)アウトした後、再びフェードインすると、ボタンが消えたまま出てこないんだよね~。(ロールやスライドでは無問題)
なんでだ;
- 41 http://nadesiko.g.hatena.ne.jp/keyworddiary/そう
- 34 http://nadesiko.g.hatena.ne.jp/keyword/ここ
- 32 http://nadesiko.g.hatena.ne.jp/keyword/空
- 28 https://www.google.co.jp/
- 22 http://nadesiko.g.hatena.ne.jp/keyword/変数
- 15 https://www.google.com/
- 9 http://search.yahoo.co.jp/
- 8 http://nadesiko.g.hatena.ne.jp/keyword/言う
- 7 http://nadesiko.g.hatena.ne.jp/keyword/そう
- 5 http://nadesiko.g.hatena.ne.jp/
私も今、Windows終了時に更新プログラムを入れて終了させる所で唸ってます(
気が付いたら、もうクリスマスがあって、新年ですねぇ。
来年もよろしくお願いします!
なんかもう一年があっという間ですね~><
しかし、今年は、みなさまのお影で急に賢くなった一年でした♪
来年もよろしくお願いします~!!