VB.NETでAeroを使用する

タグの編集
投稿者 xvmmtnk  (中学生) 投稿日時 2011/5/6 10:04:32
http://trainfandiary.blog14.fc2.com/blog-entry-254.html
を参考に、Aeroを使用したブラウザを作っているのですが、背景を黒(Black)にして使用する方法しかありません。
"Fuchica"(ピンク)を使用したいのですが、どうすればよいのでしょうか、回答よろしくお願いします。
投稿者 るきお  (社会人) 投稿日時 2011/5/6 23:04:32
こんにちは。

エアログラスの背景色をプログラムから指定することはおそらくできません。
背景色を指定するのはプログラムではなく、Windowsにログオンしているユーザー自身です。

自作アプリケーションでエアログラスを使用した場合の色は
ユーザーが個人設定で指定したウィンドウの色になります。

なので同じプログラムでもウィンドウの色をピンクにしているユーザーにはそのウィンドウはピンク色のすりガラスに見えます。

参考:MSDNマガジン「デスクトップ ウィンドウ マネージャを使用して特殊効果を施す」
http://msdn.microsoft.com/ja-jp/library/cc163435.aspx

xvmmtnkさんが参考にしているサイトの記事もMSDNマガジンから着想しているようですね。
投稿者 shu  (社会人) 投稿日時 2011/5/7 08:01:14
表示される色についてはるきおさんが言っている通りだと思います。

> 背景を黒(Black)にして使用する方法しかありません。
Formの背景色と個人設定で設定した色がorで表示されるのだと
思うので個人設定で設定した色に影響がでないよう黒(&H00000000)を
設定しているものと思われます。
投稿者 xvmmtnk  (中学生) 投稿日時 2011/5/7 16:35:26
すいません、説明不足でした。
すりガラスの色を変えるわけではなく、

"http://blog-imgs-36-origin.fc2.com/t/r/a/trainfandiary/aerotest15.png"
このように、フォームの背景(Aeroを適応するコントロールの背景)は必ず黒(Black)に設定しなけでばならないので、ピンク(Fuchica(あまり使わない色なので))でもできないのかと思い、質問させていただきました。
投稿者 るきお  (社会人) 投稿日時 2011/5/7 17:06:22
すりガラス化していないときのフォームの色は通常通り好きに設定してかまいません。
するガラス化するときにBlackにすればOKです。

普段ピンクで、ボタンを押すとすりガラス化する例
Public Class Form1

    Private Declare Sub DwmExtendFrameIntoClientArea Lib "dwmapi.dll" (hWnd As IntPtr, pMargins As MARGINS)

    <Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential)> _
    Public Class MARGINS
        Public Left, Right, Top, Bottom As Integer
    End Class

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Me.BackColor = Color.Black
        DwmExtendFrameIntoClientArea(Me.Handle, New MARGINS With {.Left = -1})

    End Sub

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.BackColor = Color.Fuchsia
    End Sub

End Class