Results 1 to 8 of 8

Thread: help convert from VB6 to VB.NET

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    Jan 2009
    Posts
    130

    help convert from VB6 to VB.NET

    Code:
    Option Explicit
    Const AC_SRC_OVER = &H0
    Const SW_MINIMIZE = 6
    
    Private Type BLENDFUNCTION
      BlendOp As Byte
      BlendFlags As Byte
      SourceConstantAlpha As Byte
      AlphaFormat As Byte
    End Type
    Private Type BITMAP
        bmType As Long
        bmWidth As Long
        bmHeight As Long
        bmWidthBytes As Long
        bmPlanes As Integer
        bmBitsPixel As Integer
        bmBits As Long
    End Type
    Private Type POINTAPI
        x As Long
        y As Long
    End Type
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
    Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
    Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    
    Dim STDHdc As Long, STDSpec As Long, PicPos As POINTAPI
    Dim BufBit As Long, BufHdc As Long
    
    Dim bf As BLENDFUNCTION
    
    Private Sub Command1_Click()
    blur 3
    End Sub
    
    Private Sub Form_Load()
    Timer1.Enabled = False
    Me.Caption = "Shut Me down"
    Me.WindowState = 0
    Me.Show
    
    BufHdc = CreateCompatibleDC(0)
    BufBit = CreateCompatibleBitmap(GetDC(0), 401, 401)
    SelectObject BufHdc, BufBit
    
    STDHdc = CreateCompatibleDC(0)
    STDSpec = CreateCompatibleBitmap(GetDC(0), 401, 401)
    SelectObject STDHdc, STDSpec
    Timer1.Interval = 2000
    Timer1.Enabled = True
    
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
    DeleteDC STDHdc
    DeleteDC BufHdc
    DeleteObject BufBit
    DeleteObject STDSpec
    End
    End Sub
    
    
    Private Sub blur(intensity As Integer)
    Dim x As Long, y As Long, SPREAD As Single, LBF As Long
    
    SPREAD = 128
    With bf
        .BlendOp = AC_SRC_OVER
        .BlendFlags = 0
        .SourceConstantAlpha = SPREAD
        .AlphaFormat = 0
    End With
    RtlMoveMemory LBF, bf, 4
    
    PicPos.x = 100
    PicPos.y = 100
     
    BitBlt STDHdc, 0, 0, 401, 401, _
            GetDC(0), PicPos.x - 200, PicPos.y - 200, vbSrcCopy
    BitBlt BufHdc, 0, 0, 401, 401, STDHdc, 0, 0, vbSrcCopy
    
    If intensity > 0 Then
        For x = 0 To intensity - 1
                AlphaBlend BufHdc, 0, 0, 400, 401, _
                    STDHdc, 1, 0, 400, 401, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 1, 0, 400, 401, _
                    STDHdc, 0, 0, 400, 401, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 0, 0, 401, 400, _
                    STDHdc, 0, 1, 401, 400, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 0, 1, 401, 400, _
                    STDHdc, 0, 0, 401, 400, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 0, 0, 400, 400, _
                    STDHdc, 1, 1, 400, 400, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 1, 1, 400, 400, _
                    STDHdc, 0, 0, 400, 400, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 0, 1, 400, 400, _
                    STDHdc, 1, 0, 400, 400, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
                AlphaBlend BufHdc, 1, 0, 400, 400, _
                    STDHdc, 0, 1, 400, 400, LBF
                BitBlt STDHdc, 0, 0, 401, 401, _
                    BufHdc, 0, 0, vbSrcCopy
        Next
    End If
    BitBlt GetDC(0), PicPos.x - 200, PicPos.y - 200, 401, 401, _
        BufHdc, 0, 0, vbSrcCopy
    
    End Sub
    Private Sub Timer1_Timer()
    
    Timer1.Enabled = False
    
    End Sub

  2. #2
    PowerPoster cicatrix's Avatar
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,654

    Re: help convert from VB6 to VB.NET

    vb.net Code:
    1. Imports System.Runtime.InteropServices
    2.  
    3. Public Class Form1
    4.  
    5.     Friend WithEvents Command1 As Button
    6.     Friend WithEvents timer1 As Timer
    7.  
    8.     Private Const AC_SRC_OVER As Integer = &H0
    9.     Private Const SW_MINIMIZE As Integer = 6
    10.  
    11.     Public Sub New()
    12.  
    13.         ' This call is required by the designer.
    14.         InitializeComponent()
    15.  
    16.         ' Add any initialization after the InitializeComponent() call.
    17.         Me.SuspendLayout()
    18.         Command1 = New Button
    19.         timer1 = New Timer
    20.  
    21.         With Command1
    22.             .Text = "Click"
    23.             .Width = 250
    24.             .Height = 20
    25.             .Left = 10
    26.             .Top = 10
    27.             .Visible = True
    28.         End With
    29.  
    30.         With timer1
    31.             .Enabled = False
    32.         End With
    33.  
    34.         Me.Controls.Add(Command1)
    35.         Me.components.Add(timer1)
    36.         Me.ResumeLayout()
    37.     End Sub
    38.  
    39.     <StructLayout(LayoutKind.Sequential)> _
    40.     Private Structure BLENDFUNCTION
    41.         Dim BlendOp As Byte
    42.         Dim BlendFlags As Byte
    43.         Dim SourceConstantAlpha As Byte
    44.         Dim AlphaFormat As Byte
    45.     End Structure
    46.  
    47.     <StructLayout(LayoutKind.Sequential)> _
    48.     Private Structure BITMAP
    49.         Dim bmType As Integer
    50.         Dim bmWidth As Integer
    51.         Dim bmHeight As Integer
    52.         Dim bmWidthBytes As Integer
    53.         Dim bmPlanes As Short
    54.         Dim bmBitsPixel As Short
    55.         Dim bmBits As Integer
    56.     End Structure
    57.  
    58.     <StructLayout(LayoutKind.Sequential)> _
    59.     Private Structure POINTAPI
    60.         Dim x As Integer
    61.         Dim y As Integer
    62.     End Structure
    63.  
    64.     <DllImport("gdi32", CharSet:=CharSet.Auto, setlasterror:=True)> _
    65.     Private Shared Function CreateCompatibleBitmap(ByVal hdc As IntPtr, ByVal nWidth As Integer, ByVal nHeight As Integer) As IntPtr
    66.     End Function
    67.  
    68.     <DllImport("gdi32", CharSet:=CharSet.Auto, setlasterror:=True)> _
    69.     Private Shared Function CreateCompatibleDC(ByVal hdc As IntPtr) As IntPtr
    70.     End Function
    71.  
    72.     <DllImport("gdi32", CharSet:=CharSet.Auto, setlasterror:=True)> _
    73.     Private Shared Function SelectObject(ByVal hdc As IntPtr, ByVal hObject As IntPtr) As Integer
    74.     End Function
    75.  
    76.     <DllImport("gdi32", CharSet:=CharSet.Auto, setlasterror:=True)> _
    77.     Private Shared Function GetObject(ByVal hObject As IntPtr, ByVal nCount As Integer, ByVal lpObject As IntPtr) As Integer
    78.     End Function
    79.  
    80.     <DllImport("kernel32.dll", EntryPoint:="RtlMoveMemory", SetLastError:=True, CharSet:=CharSet.Auto)> _
    81.     Private Shared Sub RtlMoveMemory(<[In](), MarshalAs(UnmanagedType.I4)> ByVal hpvDest As Int32, <[In](), Out()> ByVal hpvSource() As Byte, ByVal cbCopy As Integer)
    82.     End Sub
    83.  
    84.     <DllImport("gdi32.dll", EntryPoint:="GdiAlphaBlend", setlasterror:=True)> _
    85.     Private Shared Function AlphaBlend(ByVal hdcDest As IntPtr,
    86.                                   ByVal nXOriginDest As Integer, _
    87.                                   ByVal nYOriginDest As Integer, _
    88.                                   ByVal nWidthDest As Integer, _
    89.                                   ByVal nHeightDest As Integer, _
    90.                                   ByVal hdcSrc As IntPtr, _
    91.                                   ByVal nXOriginSrc As Integer, _
    92.                                   ByVal nYOriginSrc As Integer, _
    93.                                   ByVal nWidthSrc As Integer, _
    94.                                   ByVal nHeightSrc As Integer, _
    95.                                   ByVal blendfunction As BLENDFUNCTION) As Boolean
    96.     End Function
    97.  
    98.     Private Enum TernaryRasterOperations As UInteger
    99.         ''' <summary>dest = source</summary>
    100.         SRCCOPY = &HCC0020
    101.         ''' <summary>dest = source OR dest</summary>
    102.         SRCPAINT = &HEE0086
    103.         ''' <summary>dest = source AND dest</summary>
    104.         SRCAND = &H8800C6
    105.         ''' <summary>dest = source XOR dest</summary>
    106.         SRCINVERT = &H660046
    107.         ''' <summary>dest = source AND (NOT dest)</summary>
    108.         SRCERASE = &H440328
    109.         ''' <summary>dest = (NOT source)</summary>
    110.         NOTSRCCOPY = &H330008
    111.         ''' <summary>dest = (NOT src) AND (NOT dest)</summary>
    112.         NOTSRCERASE = &H1100A6
    113.         ''' <summary>dest = (source AND pattern)</summary>
    114.         MERGECOPY = &HC000CA
    115.         ''' <summary>dest = (NOT source) OR dest</summary>
    116.         MERGEPAINT = &HBB0226
    117.         ''' <summary>dest = pattern</summary>
    118.         PATCOPY = &HF00021
    119.         ''' <summary>dest = DPSnoo</summary>
    120.         PATPAINT = &HFB0A09
    121.         ''' <summary>dest = pattern XOR dest</summary>
    122.         PATINVERT = &H5A0049
    123.         ''' <summary>dest = (NOT dest)</summary>
    124.         DSTINVERT = &H550009
    125.         ''' <summary>dest = BLACK</summary>
    126.         BLACKNESS = &H42
    127.         ''' <summary>dest = WHITE</summary>
    128.         WHITENESS = &HFF0062
    129.     End Enum
    130.  
    131.     <DllImport("gdi32.dll", setlasterror:=True)> _
    132.     Private Shared Function BitBlt(ByVal hdc As IntPtr, _
    133.                                    ByVal nXDest As Integer, _
    134.                                    ByVal nYDest As Integer, _
    135.                                    ByVal nWidth As Integer, _
    136.                                    ByVal nHeight As Integer, _
    137.                                    ByVal hdcSrc As IntPtr, _
    138.                                    ByVal nXSrc As Integer, _
    139.                                    ByVal nYSrc As Integer, _
    140.                                    ByVal dwRop As TernaryRasterOperations) As Boolean
    141.     End Function
    142.  
    143.     <DllImport("gdi32.dll", setlasterror:=True)> _
    144.     Private Shared Function DeleteDC(ByVal hdc As IntPtr) As Integer
    145.     End Function
    146.  
    147.     <DllImport("gdi32.dll", setlasterror:=True)> _
    148.     Private Shared Function DeleteObject(ByVal hObject As IntPtr) As Integer
    149.     End Function
    150.  
    151.     <DllImport("user32.dll", setlasterror:=True)> _
    152.     Private Shared Function GetDC(ByVal hwnd As IntPtr) As IntPtr
    153.     End Function
    154.  
    155.     <DllImport("user32.dll", setlasterror:=True)> _
    156.     Private Shared Function GetForegroundWindow() As IntPtr
    157.     End Function
    158.  
    159.     <DllImport("user32.dll", setlasterror:=True)> _
    160.     Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Integer
    161.     End Function
    162.  
    163.     Dim STDHdc As IntPtr, STDSpec As IntPtr, PicPos As POINTAPI
    164.     Dim BufBit As IntPtr, BufHdc As IntPtr
    165.  
    166.     Dim bf As New BLENDFUNCTION
    167.  
    168.     Private Sub Command1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Command1.Click
    169.         blur(3)
    170.     End Sub
    171.  
    172.     Private Sub Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    173.         timer1.Enabled = False
    174.         Me.Text = "Shut Me down"
    175.         Me.WindowState = FormWindowState.Normal
    176.         Me.Show()
    177.  
    178.         BufHdc = CreateCompatibleDC(IntPtr.Zero)
    179.         BufBit = CreateCompatibleBitmap(GetDC(IntPtr.Zero), 401, 401)
    180.         SelectObject(BufHdc, BufBit)
    181.  
    182.         STDHdc = CreateCompatibleDC(IntPtr.Zero)
    183.         STDSpec = CreateCompatibleBitmap(GetDC(IntPtr.Zero), 401, 401)
    184.         SelectObject(STDHdc, STDSpec)
    185.         timer1.Interval = 2000
    186.         timer1.Enabled = True
    187.  
    188.     End Sub
    189.  
    190.     Private Sub Form_Unload(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
    191.         DeleteDC(STDHdc)
    192.         DeleteDC(BufHdc)
    193.         DeleteObject(BufBit)
    194.         DeleteObject(STDSpec)
    195.     End Sub
    196.  
    197.     Private Sub blur(ByVal intensity As Short)
    198.         Dim SPREAD As Byte
    199.  
    200.         SPREAD = 128
    201.         With bf
    202.             .BlendOp = AC_SRC_OVER
    203.             .BlendFlags = 0
    204.             .SourceConstantAlpha = SPREAD
    205.             .AlphaFormat = 0
    206.         End With
    207.  
    208.         'RtlMoveMemory(LBF, bf, 4) Not necessary due to the modified declaration
    209.  
    210.         PicPos.x = 100
    211.         PicPos.y = 100
    212.  
    213.         BitBlt(STDHdc, 0, 0, 401, 401, _
    214.                 GetDC(IntPtr.Zero), PicPos.x - 200, PicPos.y - 200, TernaryRasterOperations.SRCCOPY)
    215.         BitBlt(BufHdc, 0, 0, 401, 401, STDHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    216.  
    217.         If intensity > 0 Then
    218.             For x = 0 To intensity - 1
    219.                 AlphaBlend(BufHdc, 0, 0, 400, 401, _
    220.                     STDHdc, 1, 0, 400, 401, bf)
    221.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    222.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    223.                 AlphaBlend(BufHdc, 1, 0, 400, 401, _
    224.                     STDHdc, 0, 0, 400, 401, bf)
    225.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    226.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    227.                 AlphaBlend(BufHdc, 0, 0, 401, 400, _
    228.                     STDHdc, 0, 1, 401, 400, bf)
    229.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    230.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    231.                 AlphaBlend(BufHdc, 0, 1, 401, 400, _
    232.                     STDHdc, 0, 0, 401, 400, bf)
    233.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    234.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    235.                 AlphaBlend(BufHdc, 0, 0, 400, 400, _
    236.                     STDHdc, 1, 1, 400, 400, bf)
    237.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    238.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    239.                 AlphaBlend(BufHdc, 1, 1, 400, 400, _
    240.                     STDHdc, 0, 0, 400, 400, bf)
    241.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    242.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    243.                 AlphaBlend(BufHdc, 0, 1, 400, 400, _
    244.                     STDHdc, 1, 0, 400, 400, bf)
    245.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    246.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    247.                 AlphaBlend(BufHdc, 1, 0, 400, 400, _
    248.                     STDHdc, 0, 1, 400, 400, bf)
    249.                 BitBlt(STDHdc, 0, 0, 401, 401, _
    250.                     BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    251.             Next
    252.         End If
    253.         BitBlt(GetDC(IntPtr.Zero), PicPos.x - 200, PicPos.y - 200, 401, 401, _
    254.             BufHdc, 0, 0, TernaryRasterOperations.SRCCOPY)
    255.  
    256.     End Sub
    257.  
    258.     Private Sub Timer1_Timer() Handles timer1.Tick
    259.         timer1.Enabled = False
    260.     End Sub
    261.  
    262. End Class

  3. #3

    Thread Starter
    Addicted Member
    Join Date
    Jan 2009
    Posts
    130

    Re: help convert from VB6 to VB.NET

    thx but it doesnt blur :O

  4. #4

  5. #5

    Thread Starter
    Addicted Member
    Join Date
    Jan 2009
    Posts
    130

    Re: help convert from VB6 to VB.NET

    o ok

  6. #6
    I'm about to be a PowerPoster! Hack's Avatar
    Join Date
    Aug 2001
    Location
    Searching for mendhak
    Posts
    58,333

    Re: help convert from VB6 to VB.NET

    What is it supposed to do?

  7. #7
    PowerPoster cicatrix's Avatar
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,654

    Re: help convert from VB6 to VB.NET

    Supposedly it should apply a blur filter to an image but I seriously doubt this code is working.
    Because there is nowhere a real source device context is selected. Everywhere IntPtr.Zero is given as an argument.

  8. #8

    Thread Starter
    Addicted Member
    Join Date
    Jan 2009
    Posts
    130

    Re: help convert from VB6 to VB.NET

    in vb6 its working!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width