 Källkoden för /anders.enges/vb/vbtips12.asp
 Källkoden för /anders.enges/vb/vbtips12.asp 
<!--#include file="../inc/navstuff.asp" -->
Tja. Inget säger väl att fönster i windows <b>måste</b> vara fyrkantiga. Prova gärna följande:<p>
1. Skapa ett vanligt EXE program i VB.<p>
2. Set formens ScaleMode property till 3 - Pixel<p>
3. Sätt in en Combobox mitt på fönstret<p>
4. Lägg till en <b>Module</b><p>
5. Sätt in följande kod i modulen<p>
<div class=code>
' API POINT med x och y<br>
Type POINTAPI<br>
   X As Long<br>
   Y As Long<br>
End Type<br>
<br>
' Konstanter som används för kombinationer<br>
Public Const RGN_AND = 1<br>
Public Const RGN_OR = 2<br>
Public Const RGN_XOR = 3<br>
Public Const RGN_DIFF = 4<br>
Public Const RGN_COPY = 5<br>
<br>
Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _<br>
      ByVal hSrcRgn1 As Long, _<br> 
      ByVal hSrcRgn2 As Long, _<br>
      ByVal nCombineMode As Long) As Long<br>
<br>
Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _<br>
      ByVal Y1 As Long, _<br>
      ByVal X2 As Long, _<br>
      ByVal Y2 As Long) As Long<br>
<br>
Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, _<br>
      ByVal Y1 As Long, _<br>
      ByVal X2 As Long, _<br>
      ByVal Y2 As Long) As Long<br>
<br>
Declare Function SetWindowRgn Lib "User32" (ByVal hWnd As Long, _<br>
      ByVal hRgn As Long, _<br>
      ByVal bRedraw As Boolean) As Long<br>
</div>
<p>
6. Sätt in följande kod i formen<p>
<div class=code>
Private Sub Combo1_Click()<br>
   Dim resultat As Integer<br>
   Dim kombination As Long<br>
   Dim storRund As Long<br>
   Dim titelFyrkant As Long<br>
   Dim fyrkantCirkel As Long<br>
   Dim combonsBox As Long<br>
   Dim alltKombin As Long<br>
   Select Case Combo1.Text<br>
      Case "RGN_AND"<br>
         kombination = RGN_AND<br>
      Case "RGN_COPY"<br>
         kombination = RGN_COPY<br>
      Case "RGN_DIFF"<br>
         kombination = RGN_DIFF<br>
      Case "RGN_OR"<br>
         kombination = RGN_OR<br>
      Case "RGN_XOR"<br>
         kombination = RGN_XOR<br>
   End Select<br>
   storRund = CreateEllipticRgn(0, 2, Me.ScaleWidth, Me.ScaleHeight - 2)<br>
   titelFyrkant = CreateRectRgn(2, 3, Me.ScaleWidth + 2, 21)<br>
   alltKombin = CreateRectRgn(1, 1, 1, 1)<br>
   combonsBox = CreateRectRgn(Combo1.Left + 2, _<br>
            Combo1.Top + 22, _<br>
            Combo1.Left + Combo1.Width + 2, _<br> 
            Combo1.Top + Combo1.Height + 22)<br>
   ' storleken inte viktig<br>
   fyrkantCirkel = CreateRectRgn(0, 0, 10, 30)<br>
   resultat = CombineRgn(fyrkantCirkel, titelFyrkant, storRund, kombination)<br>
   resultat = CombineRgn(alltKombin, fyrkantCirkel, combonsBox, RGN_OR)<br>
   resultat = SetWindowRgn(Me.hWnd, alltKombin, True)<br>
End Sub<br>
<br>
Private Sub Form_Load()<br>
   Combo1.AddItem "RGN_AND"<br>
   Combo1.AddItem "RGN_COPY"<br>
   Combo1.AddItem "RGN_DIFF"<br>
   Combo1.AddItem "RGN_OR"<br>
   Combo1.AddItem "RGN_XOR"<br>
End Sub<br>
</div>
<p>
6. Prova genom att välja i Combon<p>
<!--#include file="../inc/footer.asp" -->