2009/07/29(Wed) 21:06:41 編集(投稿者)
# しまった。。。この実装方法だと、最大化すると困った事になる…。
■No39048 (hs さん) に返信
> タイトルバーのキャブション部分が不要だからです。
サイズ変更可能なまま、タイトルバーを消してみました。
単にリージョンを切っただけなので、上方向へのリサイズができないという手抜き実装ですが。
' %WINDIR%\Microsoft.NET\Framework\v3.5\VBC.EXE /T:WINEXE SAMPLE.VB
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Drawing.Drawing2D
Public Class Form1 : Inherits Form
Public Shared Sub Main()
Application.Run(New Form1())
End Sub
Private Declare Auto Function SendMessage Lib "user32" _
(ByVal hWnd As IntPtr, ByVal message As Integer, _
ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private oldRegion As Region
Private Sub Form1_Load() Handles MyBase.Load
oldRegion = Me.Region()
Dim q = Aggregate scr In Screen.AllScreens Into _
L = Min(scr.Bounds.Left), _
T = Min(scr.Bounds.Top), _
B = Max(scr.Bounds.Bottom), _
R = Max(scr.Bounds.Right)
Dim offset = Me.RectangleToScreen(Me.ClientRectangle).Top - Me.Top
Dim fullScreenSize As New Rectangle(q.L, q.T + offset, q.R - q.L, q.B - q.T - offset)
Using path As New GraphicsPath()
path.AddRectangle(fullScreenSize)
Me.Region = New Region(path)
End Using
Dim btn As New Button() With { .Text = "★" }
AddHandler btn.Click, Function() SendMessage(Handle, &H313, 0, Cursor.Position.X Or Cursor.Position.Y * &H10000)
Controls.Add(btn)
End Sub
Private Sub Form1_FormClosing() Handles Me.FormClosing
Hide()
Using r As Region = Me.Region
Me.Region = oldRegion
End Using
End Sub
End Class