2016-09-12 4 views
0

パネルの隅に描画されたカスタムシェイプをドラッグすることに基づいてサイズ変更可能なフォームを作成しようとしています。私はそれがメインフォームで描画されている場合は素晴らしい作品は、コードがありますが、私はそれが動作しないパネルの隅に描画しようとしている、私はフォームのサイズを変更することはできません。コードはフォームに描画されるように最適化されています。パネルの描画形状からフォームのサイズを変更する - VB.NET

Protected Overrides Sub WndProc(ByRef m As Message) 
    MyBase.WndProc(m) 
    If m.Msg = &H84 Then 
     Dim pos = Me.PointToClient(New System.Drawing.Point(m.LParam.ToInt32() And &HFFFF, m.LParam.ToInt32() >> 16)) 
     If pos.X >= Me.Width - grab AndAlso pos.Y >= Me.Height - grab Then 
      m.Result = New IntPtr(17) 
     End If 
    End If 
End Sub 
Private Const grab As Integer = 14 

Protected Overrides Sub OnPaint(e As PaintEventArgs) 
    MyBase.OnPaint(e) 
    Dim rc = New System.Drawing.Rectangle(Me.Width - grab, Me.Height - grab, grab, grab) 
    ControlPaint.DrawSizeGrip(e.Graphics, System.Drawing.Color.FromArgb(250, 250, 250), rc) 
End Sub 

それは次のようになります。私は代わりに、すでにそれを絵画の、スタンドアロンのコントロールのような形状をペイントするGDIを使用して独自のカスタムコントロールを構築することにより、問題を解決するために管理

Here

+0

Google "帰属が必要"このコードの作成者にあなたを助ける良い方法となる傾向があります。 –

+0

私はHackforums.netのユーザーからコードを入手しましたが、著者が誰であるかはわかりません。ごめんなさい! – Nana

答えて

0

そのようなパネルを構築しました。

関連する問題