'å¤å¶å°VB代ç éé¢æ
¢æ
¢ççå§ï¼
'------------------------------------------
'ç¨åºè¯´æï¼
'æ¬ä¾æ¯å®ç°æ件ä»EXPLOREå°VBåºç¨ç¨åºææ¾çåä¸ç§
'æ¹æ³ï¼ä¸éç¨APIå½æ°å®ç°çæ¹æ³ç¸æ¯ï¼è¿ç§æ¹æ³æ´ç®
'åææã
'OLEææ¾æ¯å¯å¨ Visual Basic åºç¨ç¨åºä¸æ·»å çæ强
'大ãææç¨çåè½ä¹ä¸å°±æ¯å¨æ§ä»¶åæ§ä»¶ä¹é´ãå¨æ§ä»¶
'åå
¶å® Windows åºç¨ç¨åºä¹é´æå¨ææ¬åå¾å½¢ãæäº
'OLEï¼å°±å¯å°è¿ç§åè½å¼å
¥å°åºç¨ç¨åºä¸ã
'------------------------------------------
Option Explicit
Private Sub Form_Load()
'ç»è¿å£°æPicture1æ为æ¥åæ件ææ¾çä¸ä¸ªOLE容å¨
Picture1.OLEDropMode = 1
End Sub
Private Sub Picture1_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Dim i As Integer
'æ£æ¥æ¾ä¸çä¸è¥¿æ¯ä¸æ¯æ件å
If data.GetFormat(vbCFFiles) = True Then
Dim sFileName$
'åªè¯»å第ä¸æ¡è®°å½çä¿¡æ¯
sFileName = data.Files(1)
'å¦æä¸æ¯å¾çæ件å转åé误å¤ç
On Error GoTo invalidPicture
'ä¾æ¬¡è¯»ååæ¡è®°å½ï¼å¹¶ææ件åæ·»å å¨å表æ¡ä¸
For i = 1 To data.Files.Count
List1.AddItem data.Files(i)
Next i
'å°å¾çæ¾ç¤ºå¨å¾çæ¡ä¸
Picture1.Picture = LoadPicture(sFileName)
End If
Exit Sub
invalidPicture:
'æ¾ç¤ºé误信æ¯
DisplayPicture1Message
End Sub
Private Sub DisplayPicture1Message()
'æ¸
é¤å¾çæ¡ä¸çå¾ç
Picture1.Picture = LoadPicture()
Const Msg As String = "Invalid Picture Format!"
' å¨å¾çæ¡ä¸æ¾ç¤ºé误信æ¯ï¼è¿ä¸ªç¨æ³å¾å°è§
Picture1.CurrentX = (Picture1.ScaleWidth \ 2) - (Picture1.TextWidth(Msg) \ 2)
Picture1.CurrentY = (Picture1.ScaleHeight \ 2) - (Picture1.TextHeight(Msg) \ 2)
Picture1.Print Msg
End Sub
'å½é¼ æ æçä¸è¥¿ç§»è¿å¾çæ¡æ¶
Private Sub Picture1_OLEDragOver(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single, State As Integer)
'æ£æ¥ç§»è¿å¾çæ¡çæ¯ä¸æ¯æ件ï¼è±¡âåæ¶ç«âå°±ä¸æ¯æ件ï¼
If data.GetFormat(vbCFFiles) Then
'æ¾ç¤ºå¯ä»¥æ¾ä¸çå¾æ ï¼æ¯å¸¦å°å å·çé£ç§
effect = vbDropEffectCopy And effect
Else
'å¦åæ¾ç¤ºä¸å¯æ¾ä¸çå¾æ ï¼æ¯ååå æ线é£ç§
effect = vbDropEffectNone
End If
End Sub
'--------------------------OLEææ¾ç®ä»-------------------------------------------------
'å¯å¨ Visual Basic åºç¨ç¨åºä¸æ·»å çæ强大ãææç¨çåè½ä¹ä¸å°±æ¯å¨æ§ä»¶åæ§ä»¶ä¹
'é´ãå¨æ§ä»¶åå
¶å® Windows åºç¨ç¨åºä¹é´æå¨ææ¬åå¾å½¢ãæäº OLEï¼å°±å¯å°è¿ç§åè½
'å¼å
¥å°åºç¨ç¨åºä¸ã
'ä½¿ç¨ OLE ææ¾æ¶ï¼å¹¶ä¸æ¯æä¸ä¸ªæ§ä»¶æå¨å°å¦ä¸ä¸ªæ§ä»¶å¹¶è°ç¨ä»£ç ï¼è±¡æ¬ç« åé¢è®¨è®ºç
'ææ¾ä¸æ ·ï¼ï¼èæ¯å°æ°æ®ä»ä¸ä¸ªæ§ä»¶æåºç¨ç¨åºç§»å¨å°å¦ä¸ä¸ªæ§ä»¶æåºç¨ç¨åºãä¾å¦ï¼ç¨
'æ·å
éå®å¹¶æå¨ Excel ä¸çä¸ååå
ï¼ç¶åå°å®ä»¬æ¾å°åºç¨ç¨åºç DBGrid æ§ä»¶ä¸ã
'Visual Basic çå ä¹æææ§ä»¶é½å¨æç§ç¨åº¦ä¸æ¯æ OLE ææ¾ãï¼ç± Visual Basic ä¸
'ä¸çåä¼ä¸çæä¾çï¼ä¸è¿°çæ åæ§ä»¶å ActiveX æ§ä»¶èªå¨æ¯æ OLE ææ¾ï¼è¿æå³çæ
'论æ¯ä»æ§ä»¶æåºè¿æ¯å¨æ§ä»¶å
æ¾å
¥é½ä¸éè¦ç¼å代ç :
'Apex DBGrid Picturebox Richtextbox
'Image Textbox Maskededitbox
'为对è¿äºæ§ä»¶å¯å¨èªå¨ OLE ææ¾ï¼åºå° OLEDragMode å OLEDropMode 设置为âèªå¨è¯âã
'---------------------------------------------------------------------------------------
'å¯ç¨ä¸å OLE ææ¾å±æ§ãäºä»¶åæ¹æ³æå®å·²ç¥æ§ä»¶ååºææ¾çæ¹å¼ã
'ç±»å« é¡¹ç® æè¿°
'å±æ§ OLEDragMode å¯å¨æ§ä»¶çèªå¨æå¨ææå·¥æå¨ï¼è¥æ§ä»¶æ¯ææå·¥æå¨ä½ä¸æ¯æèªå¨ OLE æå¨ï¼åå®ä¸å
·ææ¤å±æ§ï¼ä½æ¯æ OLEDrag æ¹æ³å OLE ææ¾äºä»¶ï¼ã
' OLEDropMode æå®æ§ä»¶å¦ä½ååºæ¾æä½ã
'äºä»¶ OLEDragDrop è¯å«æºå¯¹è±¡ä½æ¶è¢«æ¾å°æ§ä»¶ä¸ã
' OLEDragOver è¯å«æºå¯¹è±¡ä½æ¶è¢«æå¨ç»è¿æ§ä»¶ã
' OLEGiveFeedback 以æºå¯¹è±¡ä¸ºåºç¡åç¨æ·æä¾èªå®ä¹æå¨å¾æ åé¦ã
' OLEStartDrag å¨å¯å¨æå¨æ¶ï¼æºæ¯æåªç§æ°æ®æ ¼å¼åæ¾ææï¼å¤å¶ã移å¨ææç»æ°æ®ï¼ã
' OLESetData å¨æ¾æºå¯¹è±¡æ¶æä¾æ°æ®ã
' OLECompleteDrag å½æ对象æ¾å°ç®æ æ¶éç¥è¢«æ§è¡çæä½çæºã
'æ¹æ³ OLEDrag å¯å¨æå·¥æå¨ã
'----------------------------------------------------------------------------------------
'æ¬ä¾ä¸ç¨å°çå±æ§åæ¹æ³ï¼
'OLEDragMode -------è¿åæ设置æ¯ç±é¨ä»¶è¿æ¯ç±ç¨åºåæ¥å¤ç OLE ææ¾æä½ã
'å±æ§ï¼ 0 表示为æå·¥ææ¾ 1 表示为èªå¨ææ¾
'æ们设为 1 æ¯èªå¨ææ¾æ¨¡å¼ï¼è¿æ¶æ们è¦ç¨OLEDragDropï¼OLEDragOveräºä»¶æ¥æ§å¶ææ¾æä½
'
'OLEDragDrop -------å½æºé¨ä»¶å³å®æ¾æä½è½åçï¼ä¸æºé¨ä»¶è¢«æ¾å°ç®æ é¨ä»¶æ¶ï¼æ¤äºä»¶åçã
'è¯æ³ï¼Private Sub object_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
'OLEDragDrop äºä»¶è¯æ³å
å«ä¸é¢é¨å:
'é¨å æè¿°
'object 对象表达å¼ï¼å
¶å¼æ¯âåºç¨äºâå表ä¸çä¸ä¸ªå¯¹è±¡ã
'data DataObject 对象ï¼å
å«æºæä¾çæ ¼å¼ï¼å¦å¤ä¹å¯è½å
å«è¿äºæ ¼å¼çæ°æ®ãè¥ DataObject ä¸å
å«æ°æ®ï¼åå½æ§ä»¶è°ç¨ GetData æ¹æ³æ¶æä¾æ°æ®ãSetData å Clear æ¹æ³ä¸è½ç¨å¨è¿éã
'effect æºå¯¹è±¡è®¾ç½®çé¿æ´åæ°ï¼ç¨æ¥è¯å«æ§è¡çå¨ä½ï¼è¿æ ·å½é¨ä»¶è¢«ç§»å¨åå
许æºéåéå½çå¨ä½ï¼ä¾å¦ï¼å¦ææºè¢«ä»ä¸ä¸ªé¨ä»¶ç§»å°å¦ä¸ä¸ªé¨ä»¶ï¼åæ§è¡å é¤æ°æ®æä½ï¼ãå¯è½çåå¼åäºâ设置å¼âä¸ã
'button æ´æ°ï¼å½æä¸é¼ æ é®æ¶ï¼ä¸é¼ æ ç¶æç¸å¯¹åºãå·¦é®ä¸ºä½ 0ï¼å³é®ä¸ºä½ 1ï¼ä¸é®ä¸ºä½ 2ãè¿äºä½ç¸åºçå¼åå«ä¸º 1ï¼2 å 4ï¼å®ä»£è¡¨äºé¼ æ é®çç¶æãå¯è®¾ç½®ä¸ä¸ªä½ä¸çé¨åãå
¨é¨ææ ¹æ¬ä¸è®¾ç½®ï¼ç¸åºå°è¡¨æé¨åãå
¨é¨æé®è¢«æä¸æ没ææé®æä¸ã
'shift æ´æ°ï¼å½æä¸ SHIFTãCTRL å ALT é®æ¶ï¼ä¸è¿äºé®ç¶æç¸å¯¹åºã
' SHIFT é®ä¸ºä½ 0ï¼CTRL é®ä¸ºä½ 1ï¼ALT é®ä¸ºä½ 2ãè¿äºä½ç¸åºçå¼åå«ä¸º 1ï¼2 å 4ï¼shift åæ°ä»£è¡¨äºè¿äºé®çç¶æãå¯è®¾ç½®ä¸ä¸ªä½ä¸çé¨åãå
¨é¨ææ ¹æ¬ä¸è®¾ç½®ï¼ç¸åºå°è¡¨æé¨åãå
¨é¨æé®è¢«æä¸æ没ææé®æä¸ãä¾å¦ï¼åæ¶æä¸ CTRL å ALT é®ï¼shift å¼ä¸º 6ãCTRL
'x,y ç¡®å®é¼ æ æéå½åä½ç½®çæ°å¼ãx å y å¼ç±å¯¹è±¡ç ScaleHeightãScaleWidthãScaleLeft å ScaleTop å±æ§è®¾ç½®çåæ ç³»ç»çæ ¼å¼æ¥è¡¨ç¤ºã
'--------------------------------------------------------------------------------------
'å
¶ä¸ effect åæ°ç设置å¦ä¸ï¼
'å¸¸æ° å¼ æè¿°
'vbDropEffectNone 0 æ¾ç®æ ä¸æ¥åæ°æ®ã
'VbDropEffectCopy 1 æ¾ç»æä¿åäºä»æºå°ç®æ çæ°æ®æ·è´ä¸ãåå§æ°æ®æ²¡æ被ææ¾æä½æ¹åã
'VbDropEffectMove 2 æ¾ç»æä¿åäºè¦ä»ææ¾æºç§»å°æ¾æºçæ°æ®ä¸ã移å¨åï¼ææ¾æºè¦å é¤æ°æ®ã
'---------------------------------------------------------------------------------------
'OLEDragOver -----------å½ä¸ä¸ªé¨ä»¶å¨å¦ä¸ä¸ªé¨ä»¶ä¸æå¨æ¶åçã
'å
¶åæ°ä¸OLEDragDropçåæ°ç±»ä¼¼ã
'---------------------------------------------------------------------------------------
温馨提示:内容为网友见解,仅供参考
100分请教,VB中的OLE拖放,如有实例追加到500分
'间、在控件和其它 Windows 应用程序之间拖动文本和图形。有了 OLE,就可将这种功能 '引入到应用程序中。'使用 OLE 拖放时,并不是把一个控件拖动到另一个控件并调用代码(象本章前面讨论的 '拖放一样);而是将数据从一个控件或应用程序移动到另一个控件或应用程序。例如,用 '户先选定并拖动 Ex...
VB中如何进行OLE拖放
以Command1为例说明一下,先设置其OLEDropMode属性为1 OLEDropMode = 1 'Manual 然后写代码 Private Sub meOLEDragDrop(ByVal Datas As DataObject)spath = Datas.Files.Item(1)Text1.Text = spath End Sub Private Sub Command1_OLEDragDrop(Data As DataObject, Effect As Long, Button As...
VB关于OLE拖放的问题
'一、新建一个模块,复制下面代码到模块中 Option Explicit Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" _(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _lParam As Any) As Long Private Declare Function SendMessageByNum Lib "User32" Alias...
VB中的OLE控件怎么使用?
这里以我的软件“文章管理系统”为例解释一下OLE拖放在VB中的应用:在窗体中添加一个Image控件,在它的imgDrop_OLEDragDrop过程中添加如下代码:Private Sub imgDrop_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)Dim strTmp If ...
VB控件 OLEDROPMode及OLEDRAGMode的作用
有些控件只支持手动 OLE 拖放事件,这意味着可用代码对它们进行编程,使之成为 OLE 拖放操作的源,也可使之成为 OLE 拖放操作的目标。注意 为判断其它 ActiveX 控件是否支持 OLE 拖放,应在 Visual Basic 中加载控件并检查 OLEDragMode 和 OLEDropMode 属性是否存在,或检查 OLEDrag 方法是否存在。(不...
vb 在vb中用ole嵌入了一个.EXE文件,用savetofile保存出来后内容就变了...
用VB操作EXCEL 先建立文件系统和文对象。用VB操作EXCEL示例代码 Private Sub Command3_Click()On Error GoTo err1 Dim i As Long Dim j As Long Dim objExl As Excel.Application '声明对象变量 Me.MousePointer=11 '改变鼠标样式 Set objExl=New Excel.Application'初始化对象变量 objExl....
VB中OLE功能是什么意思?
就是内嵌其他软件的意思,比如用VB内嵌WORD,EXCEL等,都需要OLE功能来实现。
VB程序 让文件夹拖放到程序上获取该文件夹的路径!
'先设置对象为可接收拖放 Me.Text1.OLEDropMode = 1 '如果想设置为窗体本身为接收对象的话,可以设置为 'me.OLEDropMode=1 '然后编写 Sub Form_OLEDragDrop(...)函数,格式和代码和文本框函数中的一样。End Sub '当拖动对象到文本框上时 Private Sub Text1_OLEDragDrop(Data As DataObject, Effec...
VB中的OLE是什么意思?
ole对象实际上就是别人的程序原封不动的拿来使用。可在 Visual Basic 应用程序中添加的最强大、最有用的功能之一就是在控件和控件之间、在控件和其它 Windows 应用程序之间拖动文本和图形。有了 OLE,就可将这种功能引入到应用程序中。使用 OLE 拖放时,并不是把一个控件拖动到另一个控件并调用代码(...
VB中是不是用OLE事件实现拖放复制但原控件不变
用动态添加控件PICTUREBOX来实现,加载图片的时候加载你已经有的PICTUREBOX的图片,位置也可控