MFC學(xué)習(xí)小例子屏幕抓圖程序代碼_第1頁
MFC學(xué)習(xí)小例子屏幕抓圖程序代碼_第2頁
MFC學(xué)習(xí)小例子屏幕抓圖程序代碼_第3頁
MFC學(xué)習(xí)小例子屏幕抓圖程序代碼_第4頁
MFC學(xué)習(xí)小例子屏幕抓圖程序代碼_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文檔來源為 :從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持屏幕抓圖程序代碼說明:1.建立基于MFC 的單文檔應(yīng)用程序2增加菜單項(xiàng)抓圖3向視圖類添加變量:HDCm_hdcCompatible ; / 與屏幕兼容設(shè)備HBITMAPm_hbmpScreen; / 屏幕抓圖的位圖句柄/ Capture123View.h : CCapture123View 類的接口/#pragma onceclass CCapture123View : public CScrollViewprotected : / 僅從序列化創(chuàng)建CCapture123View ();DECLARE_DYNCRE(ACTCEapt

2、ure123View)/ 屬性public :CCapture123Doc* GetDocument() const ;/ 操作public :/ 重寫public :virtual void OnDraw( CDC* pDC); / 重寫以繪制該視圖virtual BOOLPreCreateWindow(CREATESTRU&CTcs);protected :virtual void OnInitialUpdate (); / 構(gòu)造后第一次調(diào)用virtual BOOLOnPreparePrinting ( CPrintInfo * pInfo );virtualvoid OnBegi

3、nPrinting ( CDC* pDC, CPrintInfo * pInfo );virtualvoid OnEndPrinting ( CDC* pDC, CPrintInfo * pInfo );/ 實(shí)現(xiàn)public :virtual CCapture123View ();#ifdef _DEBUGvirtual void AssertValid () const ;virtual void Dump( CDumpContext& dc) const ;#endifprotected : / 生成的消息映射函數(shù) protected :DECLARE_MESSAGE_(M) AP

4、 public :HDC m_hdcCompatible;/ 與屏幕兼容設(shè)備HBITMAP m_hbmpScreen;/ 屏幕抓圖的位圖句柄/ 菜單項(xiàng)抓圖處理函數(shù)afx_msg void OnGrabscreen ();#ifndef _DEBUG / Capture123View.cpp 中的調(diào)試版本inline CCapture123Doc* CCapture123View:GetDocument() const return reinterpret_cast<CCapture123Doc*>(m_pDocument); 類的實(shí)現(xiàn)#endif/ Capture123View.c

5、pp : CCapture123View/#include "stdafx.h"#include "Capture123.h"#include "Capture123Doc.h"#include "Capture123View.h"#ifdef _DEBUG#define new DEBUG_NEW#endif/ CCapture123ViewIMPLEMENT_DYNCRE(ACTCEapture123View, CScrollView )BEGIN_MESSAGE_M( CAPCapture123View, C

6、ScrollView )/ 標(biāo)準(zhǔn)打印命令ON_COMMA(NIDD_FILE_PRINT, & CScrollView : OnFilePrint )ON_COMMA(NIDD_FILE_PRINT_DIRECT, & CScrollView : OnFilePrint )ON_COMMA(NIDD_FILE_PRINT_PREVIEW,& CScrollView : OnFilePrintPreview ) ON_COMMA(NIDD_GRABSCREE,&N CCapture123View : OnGrabscreen)END_MESSAGE_M()AP /

7、 CCapture123View 構(gòu)造 / 析構(gòu)CCapture123View: CCapture123View () / TODO: 在此處添加構(gòu)造代碼CCapture123View: CCapture123View ()BOOLCCapture123View: PreCreateWindow(CREATESTRU&CTcs)/ TODO: 在此處通過修改/ CREATESTRUCT cs 來修改窗口類或樣式return CScrollView : PreCreateWindow(cs);/ CCapture123View 繪制void CCapture123View : OnDra

8、w( CDC* pDC)CCapture123Doc* pDoc = GetDocument();ASSERT_VALI(DpDoc);if (! pDoc) return ;/ 關(guān)鍵代碼SelectObject(pDC->m_hDC,m_hbmpScreen);BitBlt(pDC->m_hDC,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYS CREEN),m_hdcCompatible,0,0,SRCCOPY);/ TODO: 在此處為本機(jī)數(shù)據(jù)添加繪制代碼void CCapture123View : OnIni

9、tialUpdate ()CScrollView : OnInitialUpdate ();CSize sizeTotal ;/ TODO: 計(jì)算此視圖的合計(jì)大小sizeTotal.cx=GetSystemMetrics(SM_CXSCREEN);sizeTotal.cy=GetSystemMetrics(SM_CYSCREEN);/*sizeTotal.cx = sizeTotal.cy = 100;*/ SetScrollSizes ( MM_TEX,TsizeTotal );/ CCapture123View 打印BOOLCCapture123View : OnPreparePrinti

10、ng ( CPrintInfo * pInfo ) / 默認(rèn)準(zhǔn)備 return DoPreparePrinting ( pInfo );void CCapture123View : OnBeginPrinting ( CDC* /*pDC*/ , CPrintInfo * /*pInfo*/ ) / TODO: 添加額外的打印前進(jìn)行的初始化過程void CCapture123View : OnEndPrinting ( CDC* /*pDC*/ , CPrintInfo * /*pInfo*/ )/ TODO: 添加打印后進(jìn)行的清理過程/ CCapture123View 診斷#ifdef _D

11、EBUGvoid CCapture123View : AssertValid () const CScrollView : AssertValid ();void CCapture123View : Dump( CDumpContext& dc) constCScrollView : Dump( dc);CCapture123Doc* CCapture123View: GetDocument() const / 非調(diào)試版本是內(nèi)聯(lián)的 ASSER(Tm_pDocumen-t> IsKindOf ( RUNTIME_CLAS(SCCapture123Doc);return ( CCap

12、ture123Doc*) m_pDocumen;t#endif /_DEBUG/ CCapture123View 消息處理程序void CCapture123View : OnGrabscreen()HDC hdcScreen=:GetDC(NULL);m_hdcCompatible=CreateCompatibleDC(hdcScreen);m_hbmpScreen=CreateCompatibleBitmap(hdcScreen,GetDeviceCaps(hdcScreen,H ORZRES),GetDeviceCaps(hdcScreen,VERTRES);SelectObject(m

13、_hdcCompatible,m_hbmpScreen);BitBlt(m_hdcCompatible,0,0,GetDeviceCaps(hdcScreen,HORZRES),GetDeviceCa ps(hdcScreen,VERTRES),hdcScreen,0,0,SRCCOPY);HCURSOR hCursor=GetCursor();POINT ptCursor;GetCursorPos(&ptCursor);ICONINFO IconInfo;if (GetIconInfo(hCursor,&IconInfo)ptCursor.x-=(int)IconInfo.xHotspot);ptCursor.y-=(int)IconInfo.yHotspot);if (IconInfo.hbmMask!=NULL)Delete

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論