0

MP3タグを編集できるプログラムを書きたいです。そして、このプログラムは MFC SDI を使用しています。しかし、今、私は問題に遭遇しました。c++ Win32 コンソール アプリケーションを使用して、必要なものをすべて完了しました。しかし、MP3 のカバー画像を MFC のピクチャー コントロールで表示する方法がわかりません。

これはwin32での私のコードです:

char* imagefile = "Cover.jpg";
ID3_Tag currentTag;
currentTag.Link("song.mp3",ID3TT_ID3V1 | ID3TT_LYRICS3V2 | ID3TT_MUSICMATCH);
ID3_Frame currentFrame;
currentFrame.SetID(ID3FID_PICTURE);
currentFrame.GetField(ID3FN_MIMETYPE)->Set("image/jpeg");
currentFrame.GetField(ID3FN_PICTURETYPE)->Set(11);
currentFrame.GetField(ID3FN_DATA)->FromFile(imagefile);
currentTag.AddFrame(currentFrame);
currentTag.Update();

では、MFC Picture Control を使って画像を表示する方法を誰か教えてもらえませんか?? または、誰かが同じことを行う他の方法を持っていますか? 申し訳ありませんが、私は MFC の初心者です。そして、私の英語はあまり上手ではありません~ ありがとう!!

4

2 に答える 2

0

おそらく、メモリ内の id3 タグから画像を抽出して表示したいと思うでしょう。あなたがしていることは、id3lib の API を使用してバイナリ イメージ データを抽出し (それを使用するのに時間がかかりすぎたため、方法がわかりません)、CBitmap を使用してイメージをデコードします (MSDN で関数を調べます)。次に、CStatic とその SetBitmap() 関数を使用して、コントロールに表示するビットマップを設定します。現在、CStatic は非常に制限されているため、ほとんどの場合、CStatic は希望どおりに表示されません。次に、OnPaint() をオーバーライドする独自のコントロールを作成し、DC と BitBlt または StretchBlt を CBitmap から DC に取得する必要があります。画像を表示する方法とカスタム コントロールを作成する方法の例については、codeproject.com を参照してください。コードが多すぎて、ここでコメントを書くことはできません。

于 2013-01-08T16:39:26.723 に答える
0

SHLoadImageFileを使用して jpeg ファイルを読み込みます。この関数は、画像コントロールに渡すことができる HBITMAP 構造を返します。CStatic を使用すると仮定します。この場合、電話するだけです

m_stPicture.SetBitmap(SHLoadImageFile(imagefile));
于 2013-01-08T04:36:20.787 に答える