我在Picture控件中使用line方法画了几条线,现在想实现这样的功能:
我用鼠标划中一个区域,然后再另一个image 或picture中显示这个区域中线的放大图。如何实现?
小弟请求指教!

解决方案 »

  1.   

    Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop 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 LongDim X1 As Integer
    Dim Y1 As Integer
    Dim cx As Integer
    Dim cy As IntegerPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
        X1 = x / Screen.TwipsPerPixelX
        Y1 = y / Screen.TwipsPerPixelX
    End SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
        cx = x / Screen.TwipsPerPixelX - X1
        cy = y / Screen.TwipsPerPixelX - Y1
        Picture2.Cls    StretchBlt Picture2.hdc, 0, 0, Picture2.Width / Screen.TwipsPerPixelX, Picture2.Height / Screen.TwipsPerPixelX, _
                    Picture1.hdc, X1, Y1, cx, cy, vbSrcCopy
    End Sub