程序里面不想用到picture控件,要用到image控件
因为我要把图片内存中处理以后,添加到image中,但是image没有设备句柄
比如象api函数bitblt,怎么把内存设备中的图片传到image中
只要不用loadpicture函数,请各位给个好的建议和思路
因为我要把图片内存中处理以后,添加到image中,但是image没有设备句柄
比如象api函数bitblt,怎么把内存设备中的图片传到image中
只要不用loadpicture函数,请各位给个好的建议和思路
调试欢乐多
(1)找到它的picture属性 加载图片。
或(2)利用剪切板把图片paste上去
有这点功夫早完成了。下列代码是我写的一个图形软件的一部分,
是大家熟悉的图形软件的图元外框的类(不是很完整,但可以说明问题)可以参考:调用的时候在创建新对象,然后把事件传进来。想画的时候调用Draw就可以。VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "RectTracker"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private Const rctSize = 6 ''PixlPublic Enum eTKMouseModes
MOUSE_OVER_CTRLPT
MOUSE_DRAG_CTRLPT
End EnumPublic Enum TarckerPoint
TKTopLeft
TKTopCEnter
TKTopRight
TKCenterCenter
TKCenterLeft
TKCenterRight
TKBottomLeft
TKBottomCenter
TKBottomRight
End EnumDim m_ptTLX As Single
Dim m_ptTlY As SingleDim m_ptBRX As Single
Dim m_ptBRY As SinglePublic Event Sizing(PT As TarckerPoint, X As Single, Y As Single)
Public Event Changed()Private m_bTrackDrag As Boolean
Private m_CtrlColor As OLE_COLOR
Dim m_drawTarget As VariantPublic Function NewTracker(X1 As Single, Y1 As Single, X2 As Single, Y2 As Single)
m_ptTLX = X1
m_ptTlY = Y1
m_ptBRX = X2
m_ptBRY = Y2
End Function
Public Function Draw(Target As Variant)
'On Error Resume Next
m_drawTarget.Line (m_ptTLX, m_ptTlY)-(m_ptBRX, m_ptBRY), RGB(0, 0, 0), B
DrawRect m_drawTarget, m_ptTLX, m_ptTlY
DrawRect m_drawTarget, m_ptTLX, m_ptBRY
DrawRect m_drawTarget, m_ptBRX, m_ptTlY
DrawRect m_drawTarget, m_ptBRX, m_ptBRY
DrawRect m_drawTarget, (m_ptTLX + m_ptBRX) / 2, m_ptTlY
DrawRect m_drawTarget, (m_ptTLX + m_ptBRX) / 2, m_ptBRY
DrawRect m_drawTarget, m_ptTLX, (m_ptTlY + m_ptBRY) / 2
DrawRect m_drawTarget, m_ptBRX, (m_ptTlY + m_ptBRY) / 2
'oTarget.Print "sdfsf"
End Function
Public Property Let DrawTArget(ByVal vNewValue As Variant)
Set m_drawTarget = vNewValue
End PropertyPrivate Sub DrawRect(Target As Variant, X As Single, Y As Single)
Target.Line (X - rctSize * Screen.TwipsPerPixelX / 2, Y - rctSize * Screen.TwipsPerPixelY / 2)-Step(rctSize * Screen.TwipsPerPixelX, rctSize * Screen.TwipsPerPixelY), , BF
End Sub
Public Function MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) As Boolean
Dim bResult As Boolean
'
End FunctionPublic Function MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) As Boolean
Dim bResult As Boolean
End FunctionPublic Function MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) As Boolean
Dim m_bresult As Boolean
End Function