2017-03-29 15 views
2

以下の記事では、ステータスバーにinbuilt VSアニメーションアイコンを使用する方法について説明します。Visual Studioのアニメーション画像ステータスバー

https://msdn.microsoft.com/en-us/library/bb166795.aspx

私が知りたいのですが

、ステータスバー内のカスタムのGIFアニメーションを含める方法があります。

以下のようにビットマップイメージを含めることができます。私は上記の例によれば、GIF画像をポイントすると

https://social.msdn.microsoft.com/Forums/vstudio/en-US/fef208e7-b79d-4a0c-94fe-e6861196e1f5/how-to-show-my-icon-in-exp-visutal-stufo-statusbarsvsstatusbar?forum=vsx#ba47b61c-77a8-46c8-aa10-a04211312e6c

、アニメーションは起きていません。助けてください。

答えて

2

私が知る限り、GIFアニメーションイメージを直接使用する方法はありません。今述べたIVsStatusbar.Animation方法として

[IN] VARIANTがVT_I2ある場合、それは 予め定義されたアニメーションアイコンのSBAI_Indexを指します。このパラメータがVT_I4の場合は、 の幅が の高さの倍数になるように、アニメーション用のフィルムストリップイメージを含むHBITMAPを参照します。あなたのGIFファイルは、その幅がコピーすることにより、その高さの倍数であるBMP画像に変換し、BMPファイルにGIF画像のすべてのフレームをペーストして、あなたが言及、第2のリンクで提供されているコードを使用することができます

に。

例えば、ここでは、アニメーションのための5つのフレームが含まれて私が作成したBMPの画像は、次のとおりです。

enter image description here

はそれを、BMPファイルとしてこの画像を保存し、第2のリンクのコードを使用してデバッグ:

private void MenuItemCallback(object sender, EventArgs e) 
{ 
    IVsStatusbar statusBar = (IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar)); 

    Bitmap b = new Bitmap(@"D:\ani.bmp"); 
    IntPtr hdc = IntPtr.Zero; 
    hdc = b.GetHbitmap(); 
    object hdcObject = (object)hdc; 
    statusBar.Animation(1, ref hdcObject); 
    System.Windows.Forms.MessageBox.Show("Click OK to end status bar animation."); 
    statusBar.Animation(0, ref hdcObject); 
    DeleteObject(hdc); 
} 
[System.Runtime.InteropServices.DllImport("gdi32.dll")] 
public static extern bool DeleteObject(IntPtr hObject); 

次のようにVisual Studioでのアニメーションが表示されます。 enter image description here

関連する問題