たまにはVC++

『アニメーションを再生する』
2002.Jul.01

アニメーションとは?

よくTVでやってるアニメとは別物です。(原理は同じですが)
ウィンドウズでは「ビデオクリップ」と呼ばれる、動画ファイルとして一般的な形式の、AVIファイルを再生します。


こういうやつです。
コピーとか、検索とかを自作ソフトで行う時に、こんなアニメーションが出ればユーザーに優しい感じがしますよね!

再生の方法は?

ウィンドウズには以下のマクロが用意されています。

Animate_Close   破棄
Animate_Create  作成
Animate_Open   開く
Animate_OpenEx  開く(拡張)
Animate_Play   再生
Animate_Seek   フレームを指定して再生
Animate_Stop   停止

これらはマクロであって、関数ではありません。
Animate_Create以外は、SendMessageでアニメーションウィンドウにメッセージを送り、処理します。

アニメーションは「コントロール」と呼ばれますが、所詮はウィンドウです。
Animate_Createマクロは、CreateWindowでアニメーションウィンドウを作ります。
クラス名はSysAnimate32です。
とにかく作ってみる。

なんのかんの言っても始まりません。
とりあえずアニメーションを再生するようなものを作ってみましょう。

サンプルソース(HTML形式)

上に記したマクロを使えば、簡単に作れます。
実行結果




ほとんど説明不要ですね。
大体コメントの通りです。
サンプルでは親ウィンドウに直接描画していますが、実際使うときは、スタティクウィンドウなどを使い、そこに描画する方が良いです。
移動とか簡単ですので。
VBからやる場合や、マクロの中身を知りたい人は「commctrl.h」の中を調べてみてください。(適当だなぁ)
気をつけるべき所は、Animate_Createする場合、ウィンドウのスタイルも指定しなければなりません。
そこで指定したスタイルをそのままCreateWindowに渡しますので。
あと外部ファイル内のリソールを指定する場合、そのモジュールハンドルを取得しそれをwParamに、インデックス値をlParamに指定します。

終わり
めちゃくちゃ簡単な説明でした。
簡単過ぎて、意外とネット上にもサンプルが少なかった気がします。(あんまり調べてないですが)
まあ「基本技」として、頭の隅にでも入れてもらえればと思います。

サンプルソース
c02.lzh(9.09KB)




[先頭ページへ] [次のページへ]

リンクフリー  Copyright (C) K_Yaguchi