



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 大家知道在VB下利用API函數(shù)Bitblt可以將屏幕或者窗口上的圖象拷貝到VB中的PictureBox對象中,但是如果簡單的利用PictureBox的SavePicture函數(shù)來保存圖象,會發(fā)現(xiàn)什么也保存不了。這篇文章就是介紹如何捕獲并利用Windows下的OLE API函數(shù)保存圖象。首先來看源程序,首先建立一個新的工程文件,然后在Form1中加入5個CommandButton對象和一個PictureBox對象,然后在Form1中加入以下代碼:Option ExplicitOption Base 0Private Type PALETTEENTR
2、Y peRed As Byte peGreen As Byte peBlue As Byte peFlags As ByteEnd TypePrivate Type LOGPALETTE palVersion As Integer palNumEntries As Integer palPalEntry(255) As PALETTEENTRYEnd TypePrivate Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As ByteEnd TypePrivate Const RASTERCAPS As L
3、ong = 38Private Const RC_PALETTE As Long = &H100Private Const SIZEPALETTE As Long = 104Private Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypePrivate Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Long) As LongPrivate Declare Function CreateCompat
4、ibleBitmap Lib "GDI32" (ByVal hDC As Long, _ByVal nWidth As Long, ByVal nHeight As Long) As LongPrivate Declare Function GetDeviceCaps Lib "GDI32" (ByVal hDC As Long, ByVal _iCapabilitiy As Long) As LongPrivate Declare Function GetSystemPaletteEntries Lib "GDI32" (ByVal
5、 hDC As Long, _ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries _As PALETTEENTRY) As LongPrivate Declare Function CreatePalette Lib "GDI32" (lpLogPalette As LOGPALETTE) _As LongPrivate Declare Function SelectObject Lib "GDI32" (ByVal hDC As Long, ByVal hObje
6、ct _As Long) As LongPrivate Declare Function BitBlt Lib "GDI32" (ByVal hDCDest As Long, ByVal XDest As _Long, ByVal YDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, _ByVal hDCSrc As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop _As Long) As LongPrivate Declare Functi
7、on DeleteDC Lib "GDI32" (ByVal hDC As Long) As LongPrivate Declare Function GetForegroundWindow Lib "USER32" () As LongPrivate Declare Function SelectPalette Lib "GDI32" (ByVal hDC As Long, ByVal hPalette _As Long, ByVal bForceBackground As Long) As LongPrivate Declare
8、Function RealizePalette Lib "GDI32" (ByVal hDC As Long) As LongPrivate Declare Function GetWindowDC Lib "USER32" (ByVal hWnd As Long) As LongPrivate Declare Function GetDC Lib "USER32" (ByVal hWnd As Long) As LongPrivate Declare Function GetWindowRect Lib "USER32&q
9、uot; (ByVal hWnd As Long, lpRect As _RECT) As LongPrivate Declare Function ReleaseDC Lib "USER32" (ByVal hWnd As Long, ByVal hDC As _Long) As LongPrivate Declare Function GetDesktopWindow Lib "USER32" () As LongPrivate Type PicBmp Size As Long Type As Long hBmp As Long hPal As Lo
10、ng Reserved As LongEnd TypePrivate Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As _PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long注釋:捕捉整個屏幕Private Sub Command1_Click() Set Picture1.Picture = CaptureScreen()End Sub注釋:在兩秒鐘后捕捉當前的活動
11、窗口Private Sub Command2_Click()MsgBox "當你關閉這個對話框兩秒鐘之后程序會捕捉處于活動狀態(tài)的窗口."注釋:等待兩秒鐘Dim EndTime As DateEndTime = DateAdd("s", 2, Now)Do Until Now > EndTime DoEvents LoopSet Picture1.Picture = CaptureActiveWindow()Me.SetFocusEnd SubPrivate Sub Command3_Click()Set Picture1.Picture = Not
12、hingEnd SubPublic Function CreateBitmapPicture(ByVal hBmp As Long, ByVal hPal As Long) As PictureDim r As Long Dim Pic As PicBmp Dim IPic As IPicture Dim IID_IDispatch As GUID 注釋:填充IDispatch界面 With IID_IDispatch.Data1 = &H20400.Data4(0) = &HC0.Data4(7) = &H46 End With 注釋:填充Pic With Pic.Size = Len(Pic)注釋: Pic結構長度.Type = vbPicTypeBitma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境修復過程中企業(yè)創(chuàng)新與產(chǎn)業(yè)升級的協(xié)同
- 高技能人才培養(yǎng)的內(nèi)涵與實施路徑探索
- 甘肅省白銀市育才中學2025屆數(shù)學八上期末質(zhì)量檢測模擬試題含解析
- 遼寧理工職業(yè)大學《比較政治制度》2023-2024學年第一學期期末試卷
- 城市綠化槽棎種植與養(yǎng)護合同
- 電視臺節(jié)目制作人述職報告
- 如何應用基因編輯技術治療遺傳性疾病
- 企業(yè)培訓項目的設計與實施管理報告
- 公共營養(yǎng)師技能考核教學計劃
- 游戲策劃與關卡設計教程
- 礦山生態(tài)修復方案
- 2024年江西省公安廳招聘警務輔助人員考試真題
- 聯(lián)想銷售人員管理制度
- 裝飾施工現(xiàn)場匯報
- 貴州2023年高中學業(yè)水平合格性考試地理試卷真題(含答案詳解)
- 乙烯 - 辛烯溶液共聚反應機理及聚合物鏈結構調(diào)控策略探究
- 煤礦隱蔽致災因素普查成果礦井自查表
- 2025至2030年中國橢偏儀行業(yè)市場研究分析及發(fā)展趨向研判報告
- 2025年全國統(tǒng)一高考語文試卷(全國二卷)含答案
- 2025年高考全國二卷數(shù)學高考真題解析 含參考答案
- 鐵路營銷考試題目及答案
評論
0/150
提交評論