CAnimateCtrl の不思議

処理中を表示する自作プログレスダイアログ上にAVIクリップを置いて、処理中に動画を表示しようと思った。

フリーウェアのAVI Makerを使用して、100×100サイズで作成した7枚のBMPファイルを読み込ませ、AVIファイルを作成して、ダイアログに貼り付けてみた。

まず、AVIファイルをリソースに追加し、CAnimateCtrl をダイアログに貼り付け、コントロールの変数を作成して、そのダイアログの OnInitDialog() にて、CAnimateCtrl::Open() にAVIファイルのリソースIDを渡す。そして、CAnimateCtrl::Play(0,-1,-1)で、最初から最後までをループ再生する。

なんか、VC6の時よりも面倒になった気がするけど、とりあえず出来た。
実行してみると、再生された。
でも、ムービーの画像サイズが大きすぎた事に気づき、今度は、50×50サイズに縮小してAVIを作成した。
そしたら、CAnimateCtrl::Open()も CAnimateCtrl::Play() もTRUEを返すのに、ムービー画像が表示されない、、、

いろいろ試したけどやっぱりダメ。
試しに48×48にサイズ変更してやってみると、なんとOK。
次に、64×64でやってみると、これもOK。

はっきりと検証はしなかったけど、なんか、4で割り切れるサイズじゃなきゃダメっぽい。
う~ん、そんなことどこにも書いてなかったけどな~。。。
[PR]
by isoq | 2006-01-11 19:50 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇
<< ZIPファイルを分割して送った... 寝不足とたばことコーヒー。 >>