精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB抓圖
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As LongPrivate Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function EmptyClipboard Lib "user32" () As LongPrivate Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As LongPrivate Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate 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 LongPrivate Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPrivate Declare Function CloseClipboard Lib "user32" () As LongPrivate Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Long) As Long以上是下面要用到的API的聲明代碼是復制過來的,所以這些API是干什么要的,我不怎么了解,Command1按鈕按下后,效果就是抓取屏幕,且顯示在Picture1上面,誰來解釋下Sub Command1_Click()各代碼做的是什么事情?Private Sub Command1_Click()SourceDC = CreateDC("DISPLAY", 0, 0, 0)DestDC = CreateCompatibleDC(SourceDC)Bhandle = CreateCompatibleBitmap(SourceDC, 400, 300)         '顯示區域設置SelectObject DestDC, BhandleBitBlt DestDC, 100, 100, 400, 300, SourceDC, 0, 0, &HCC0020      '設置抓圖區域Wnd = Screen.ActiveForm.hwndOpenClipboard WndEmptyClipboardSetClipboardData 2, BhandleCloseClipboardDeleteDC DestDCReleaseDC Dhandle, SourceDCPicture1.Picture = Clipboard.GetData()End SubSourceDC = CreateDC("DISPLAY", 0, 0, 0)DestDC = CreateCompatibleDC(SourceDC)Bhandle = CreateCompatibleBitmap(SourceDC, 800, 600)         '顯示區域設置SelectObject DestDC, BhandleBitBlt DestDC, 0, 0, 800, 600, SourceDC, 0, 0, &HCC0020      '設置抓圖區域Wnd = Screen.ActiveForm.hwndOpenClipboard WndEmptyClipboardSetClipboardData 2, BhandleCloseClipboardDeleteDC DestDCReleaseDC Dhandle, SourceDCPicture1.Picture = Clipboard.GetData()
最佳答案
才疏學淺,只能粗略講一下啦SourceDC = CreateDC("DISPLAY", 0, 0, 0)'以屏幕為源建立一個設備場景DestDC = CreateCompatibleDC(SourceDC)'在內存中建立一個與剛才建立的設備場景一致的設備場景Bhandle = CreateCompatibleBitmap(SourceDC, 400, 300) '顯示區域設置'在內存中建立一幅與剛建立的設備場景相兼容的位圖SelectObject DestDC, Bhandle'這句難理解一點,不亂說了,回頭給你看API說明BitBlt DestDC, 100, 100, 400, 300, SourceDC, 0, 0, &HCC0020 '設置抓圖區域'在兩個設備場景(DestDC和SourceDC)間復制位圖Wnd = Screen.ActiveForm.hwndOpenClipboard WndEmptyClipboardSetClipboardData 2, BhandleCloseClipboard'這一段是對剪貼板的操作,我的API工具中沒有相關說明'大體意思應該是把剛才在內存中建立的位圖放到剪貼板中DeleteDC DestDC'刪除一個設備場景ReleaseDC Dhandle, SourceDC'在內存中釋放掉一個設備場景Picture1.Picture = Clipboard.GetData()'這句不用解釋了吧,把剪貼板中的位圖下載到Picture1中========================下面是我在API工具中查到的相關說明,但愿對你有幫助CreateDC【說明】為專門設備創建設備場景【返回值】Long,新設備場景句柄,若出錯則為零【其它】在繪制之前,先要為該設備場景選定一個位圖。不再需要時,該設備場景可用DeleteDC函數刪除。刪除前,其所有對象應回復初始狀態。若有設備初始設置可用DocumentPropertiesAPI函數載入DEVMODE結構。使用屏幕設備場景(DISPLAY)時要小心,因為它會干擾其他應用程序的外觀示例:靠近屏幕左上角畫一個矩形dc&  = CreateDCBynum("DISPLAY", vbNullString,vbNullString, 0)dl&  = Rectangle(dc& , 5, 5, 100, 100)【參數表】lpDriverName ---  String,用vbNullString傳遞null值給該參數,除非:1、用DISPLAY,是獲取整個屏幕的設備場景;2、用WINSPOOL,則是訪問打印驅動lpDeviceName ---  String,所用專門設備的名稱。該名由打印管理器分配顯示lpOutput -------  String,用vbNullString傳遞null值給該參數lpInitData -----  DEVMODE,這個結構保存初始值。用CreateDCBynum傳遞0(NULL)值則適用默認設置CreateCompatibleDC【說明】創建一個與特定設備場景一致的內存設備場景【返回值】Long,新設備場景句柄,若出錯則為零【其它】在繪制之前,先要為該設備場景選定一個位圖。不再需要時,該設備場景可用DeleteDC函數刪除。刪除前,其所有對象應回復初始狀態【參數表】hdc ------------  Long,設備場景句柄。新的設備場景將與它一致。也可能為0以創建一個與屏幕一致的設備場景CreateCompatibleBitmap【說明】創建一幅與設備有關位圖,它與指定的設備場景兼容【返回值】Long,執行成功返回位圖句柄,零表示失敗【其它】內存設備場景即與彩色位圖兼容,也與單色位圖兼容。這個函數的作用是創建一幅與當前選入hdc中的場景兼容。對一個內存場景來說,默認的位圖是單色的。倘若內存設備場景有一個DIBSection選入其中,這個函數就會返回DIBSection的一個句柄。如hdc是一幅設備位圖,那么結果生成的位圖就肯定兼容于設備(也就是說,彩色設備生成的肯定是彩色位圖)如果nWidth和nHeight為零,返回的位圖就是一個1×1的單色位圖一旦位圖不再需要,一定用DeleteObject函數釋放它占用的內存及資源【參數表】hdc ------------  Long,設備場景的句柄nWidth ---------  Long,位圖寬度,以像素為單位nHeight --------  Long,位圖高度,以像素為單位SelectObject【說明】每個設備場景都可能有選入其中的圖形對象。其中包括位圖、刷子、字體、畫筆以及區域等等。一次選入設備場景的只能有一個對象。選定的對象會在設備場景的繪圖操作中使用。例如,當前選定的畫筆決定了在設備場景中描繪的線段顏色及樣式【返回值】Long,與以前選入設備場景的相同hObject類型的一個對象的句柄,零表示出錯。如選定的對象是一個區域(Region),結果就是下列常數之一:SIMPLEREGION,COMPLEXREGION 或 NULLREGION 對區域進行描述, GDI_ERROR 表示出錯【其它】返回值通常用于獲得選入DC的對象的原始值。繪圖操作完成后,原始的對象通常選回設備場景。在清除一個設備場景前,務必注意恢復原始的對象【參數表】hdc ------------  Long,一個設備場景的句柄hObject --------  Long,一個畫筆、位圖、刷子、字體或區域的句柄BitBlt【說明】將一幅位圖從一個設備場景復制到另一個。源和目標DC相互間必須兼容【返回值】Long,非零表示成功,零表示失敗。會設置GetLastError【其它】在NT環境下,如在一次世界傳輸中要求在源設備場景中進行剪切或旋轉處理,這個函數的執行會失敗如目標和源DC的映射關系要求矩形中像素的大小必須在傳輸過程中改變,那么這個函數會根據需要自動伸縮、旋轉、折疊、或切斷,以便完成最終的傳輸過程【參數表】hDestDC --------  Long,目標設備場景x,y ------------  Long,對目標DC中目標矩形左上角位置進行描述的那個點。用目標DC的邏輯坐標表示nWidth,nHeight -  Long,欲傳輸圖象的寬度和高度hSrcDC ---------  Long,源設備場景。如光柵運算未指定源,則應設為0xSrc,ySrc ------  Long,對源DC中源矩形左上角位置進行描述的那個點。用源DC的邏輯坐標表示dwRop ----------  Long,傳輸過程要執行的光柵運算(插一句:&HCC0020應該是一個光柵運算的常數vbSrcCopy)DeleteDC【說明】刪除專用設備場景或信息場景,釋放所有相關窗口資源。不要將它用于GetDC函數取回的設備場景【返回值】Long,執行成功則為非零,失敗則為零【其它】若有對象被選入設備場景,則在調用本函數前應將它們選出。為此,可將初始對象回選入DC,也可用SaveDC, RestoreDC函數對回復DC為其創建時的狀態在vb里使用不要將它用于由vb hdc屬性獲取的設備場景句柄【參數表】hdc ------------  Long,將要刪除的設備場景ReleaseDC【說明】釋放由調用GetDC或GetWindowDC函數獲取的指定設備場景。它對類或私有設備場景無效(但這樣的調用不會造成損害)【返回值】Long,執行成功為1,否則為0【其它】對那些用CreateDC一類的DC創建函數生成的設備場景,不要用本函數【參數表】hwnd -----------  Long,要釋放的設備場景相關的窗口句柄hdc ------------  Long,要釋放的設備場景句柄
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
學習API—最小白的注解(七)—找圖的原理剖析
GDI C++(2) 位圖的繪制
MFC 位圖旋轉
在VB6中使用API函數實現矢量圖的繪制
什么是API
113.取得當前激活窗品句柄及標題
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 周宁县| 鹤峰县| 古丈县| 阿拉尔市| 阿瓦提县| 都匀市| 松溪县| 策勒县| 兴宁市| 方山县| 无极县| 钦州市| 大宁县| 广东省| 九龙县| 鸡泽县| 武冈市| 乌审旗| 邵阳县| 合山市| 云林县| 颍上县| 龙门县| 宜州市| 寿阳县| 铜鼓县| 湄潭县| 平远县| 英德市| 图木舒克市| 康马县| 永德县| 临洮县| 油尖旺区| 元朗区| 宜君县| 饶平县| 大冶市| 黎平县| 佛学| 中阳县|