



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 大家知道在VB下利用API函數(shù)Bitblt可以將屏幕或者窗口上的圖象拷貝到VB中的PictureBox對(duì)象中,但是如果簡(jiǎn)單的利用PictureBox的SavePicture函數(shù)來保存圖象,會(huì)發(fā)現(xiàn)什么也保存不了。這篇文章就是介紹如何捕獲并利用Windows下的OLE API函數(shù)保存圖象。首先來看源程序,首先建立一個(gè)新的工程文件,然后在Form1中加入5個(gè)CommandButton對(duì)象和一個(gè)PictureBox對(duì)象,然后在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注釋:捕捉整個(gè)屏幕Private Sub Command1_Click() Set Picture1.Picture = CaptureScreen()End Sub注釋:在兩秒鐘后捕捉當(dāng)前的活動(dòng)
11、窗口Private Sub Command2_Click()MsgBox "當(dāng)你關(guān)閉這個(gè)對(duì)話框兩秒鐘之后程序會(huì)捕捉處于活動(dòng)狀態(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結(jié)構(gòu)長度.Type = vbPicTypeBitma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳品廢棄物處理技術(shù)智能化發(fā)展研究考核試卷
- 農(nóng)機(jī)租賃市場(chǎng)拓展策略與區(qū)域差異化發(fā)展考核試卷
- 糖業(yè)市場(chǎng)環(huán)境政策對(duì)行業(yè)影響評(píng)估考核試卷
- 2024年事業(yè)單位考試山西省運(yùn)城市《公共基礎(chǔ)知識(shí)》考前沖刺試題含解析
- 基本醫(yī)療保險(xiǎn)醫(yī)療機(jī)構(gòu)制劑支付管理辦法
- 企業(yè)新員工個(gè)人工作總結(jié)10篇
- 化工裝置儀表自動(dòng)控制理論知識(shí)
- 楚雄幼兒園手工活動(dòng)方案
- 桌球獎(jiǎng)品活動(dòng)方案
- 欣賞與設(shè)計(jì)活動(dòng)方案
- 2025年法律職業(yè)資格考試民法專項(xiàng)練習(xí)卷:公司法真題匯編
- 2025-2030鋁材行業(yè)市場(chǎng)深度調(diào)研及發(fā)展策略研究報(bào)告
- 危險(xiǎn)性較大的分部分項(xiàng)工程專項(xiàng)施工方案嚴(yán)重缺陷清單(試行)2025解讀
- 湖南長沙市青竹湖湘一外國語學(xué)校2025屆七下生物期末經(jīng)典模擬試題含解析
- 浙江國企招聘2025紹興市鏡湖開發(fā)集團(tuán)有限公司下屬國企招聘11人筆試參考題庫附帶答案詳解
- 廣東2025年中考模擬數(shù)學(xué)試卷試題及答案詳解
- 山東省濟(jì)南市歷城區(qū)圖片版2025年六年級(jí)下學(xué)期調(diào)研數(shù)學(xué)試卷含解析
- 4-11-01-01 國家職業(yè)標(biāo)準(zhǔn)供電服務(wù)員 (2025年版)
- 2025至2030中國正極補(bǔ)鋰劑市場(chǎng)供給格局狀與發(fā)展態(tài)勢(shì)報(bào)告
- 四川省宜賓市敘州區(qū)2025屆五下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視試題含答案
- 2025年第九屆“學(xué)憲法、講憲法”活動(dòng)知識(shí)競(jìng)賽測(cè)試題庫及答案
評(píng)論
0/150
提交評(píng)論