質問: vc++.netでaviを制御するには・・ vc++.netでaviを制御するには・・ こんにちは、初めて質問します vc++.netで、aviをコントロールするプログラムを製作しています フォーム上に、スイッチを6個作り、スイッチをクリックすると、aviがフル画面で動き aviが終了すると、フル画面が消え、スイッチがあるフォームの絵に戻る というプログラムを作りたいのですが フォーム上にスイッチは、配置できました フォーム上にaxwindowsmediaplayerを適当に6個配置し axwindowsmediaplayerのプロパティでvisibleの設定をfalseして消し その他の設定のfullscreenの設定をfalseにして 各スイッチのイベントで、 private: system::void button1_click(system::object^ sender, system::eventargs^ e) { axwindowsmediaplayer1->fullscreen; axwindowsmediaplayer1->ctlcontrols->play(); axwindowsmediaplayer1->settings->setmode("loop",false); } と書いたのですが 最初の一回目はフルスクリーンで動き、終了するともとの画面に戻るのですが 2回目以降は、フルスクリーンになりません visibleを消しているので表示されないのかと思ったのですが visibleの設定をtrueにすると、aviはイベントで動いているのは、わかったのですが フルスクリーンになりません イベントに axwindowsmediaplayer1->fullscreen; と、書き足したのですが、フルスクリーンになりません しかたないので、イベントに、axwindowsmediaplayer1のサイズを画面1280×1024に設定して出した のですが、 今度は、aviの終了したというパラメータが返ってこないので終了できなくなってしまいました なにか良い方法がないか教えていただけないでしょうか? vc++.netの環境は、expresseditionで書いています よろしくお願いします
回答: >> if (this->axwindowsmediaplayer1->playstate == playstate = 8){ 左辺のthis->axwindowsmediaplayer1->playstateと、右辺の8の間にあるplaystateがどこにも定義されていないからエラーになってるだけだと思います。 それはさておき、変化した新しいplaystateの値はe->newstateで取り出せるので、playstateプロパティを直接読む必要は無いと思います。 if (e->newstate == 8) { で良いような気がします。