2009年11月18日水曜日

VB.NETなどで、ウィンドウ全体の背景をAeroにする方法

DFXBB's 様の VB.NET - Vista Aero Glass Effect Window より、

Vistaと7では、IEや、エクスプローラのアドレスバーみたいなところの背景が、Aeroになっているんですよね。

それを、VB.NET(まあほかの.NETでも出来ると思います)でやる方法がわかりました!

まずコード貼っておくのでみてください!

-----

Imports System.Runtime.InteropServices

Public Class Form1

<StructLayout(LayoutKind.Sequential)> _
Public Structure MARGINS
Public cxLeftWidth As Integer
Public cxRightWidth As Integer
Public cyTopHeight As Integer
Public cyButtomheight As Integer
End Structure

<DllImport("dwmapi.dll")> _
Public Shared Function DwmExtendFrameIntoClientArea(ByVal hWnd As IntPtr, ByRef pMarinset As MARGINS) As Integer
End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next
Dim margins As MARGINS = New MARGINS
margins.cxLeftWidth = -1
margins.cxRightWidth = -1
margins.cyTopHeight = -1
margins.cyButtomheight = -1
Dim hwnd As IntPtr = Me.Handle
Dim result As Integer = DwmExtendFrameIntoClientArea(hwnd, margins)
End Sub

End Class


-----


このコードをForm1のコード貼り付けて、Form1のBackColorをBlackに設定すると・・・


AllAeroGlass 


全部Aeroになります!



後は、適当にPanelなどのコントロールを配置すれば、ほかとは一味違うインターフェイスの出来上がり!



プログラマーの皆さん、やってみてください!



P.S.なぜかコントロールに配置したテキストが透過されてしまう事がわかりました。いろいろ研究してみます。

0 件のコメント:

コメントを投稿