資源簡介
/*
整理:
1、雙緩沖繪圖技術概述
原理:將一般的在CDC中繪圖改成在一內存設備中繪圖(CDC型變量,一般命名為pMemDC),然后使用BitBlt()函數將pMemDC中的圖像復制到CDC中;
步驟: ①創建內存設備CDC *pMemDC;關聯設備CreateCompatibleDC();
②創建兼容位圖 HBITMAP ::CreateCompatibleBitmap();
③選入設備內存設備(HBITMAP)::SelectObject(m_hDC,hBitmap);
④內存設備繪圖
⑤復制到CDC,使用函數 BitBlt()
2、手動重繪
原理: 利用內存設備的BitBlt()函數將初始CDC選入。將上面第⑤步的設備互換。
*/
/*
程序過程:
1、繪制背景,在函數DrawSome()中實現;并將其放在OnPaint()函數中,保證每次刷新時依然存在;
2、修改WM_ERASEBKGND消息響應函數,使得不加入背景刷(此步可以取消,暫時無影響,因為將DrawSome()放在了OnPaint()中);
3、響應鼠標左鍵按下,記錄初始坐標點;
4、響應鼠標按下移動,并實時繪制矩形,此處用到雙緩沖繪圖技術;
5、響應鼠標左鍵松開,繪制紅色矩形。
*/

代碼片段和文件信息
//?ReDraw.cpp?:?定義應用程序的類行為。
//
#include?“stdafx.h“
#include?“ReDraw.h“
#include?“ReDrawDlg.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
//?CReDrawApp
BEGIN_MESSAGE_MAP(CReDrawApp?CWinApp)
ON_COMMAND(ID_HELP?&CWinApp::onhelp)
END_MESSAGE_MAP()
//?CReDrawApp?構造
CReDrawApp::CReDrawApp()
{
//?支持重新啟動管理器
m_dwRestartManagerSupportFlags?=?AFX_RESTART_MANAGER_SUPPORT_RESTART;
//?TODO:?在此處添加構造代碼,
//?將所有重要的初始化放置在?InitInstance?中
}
//?唯一的一個?CReDrawApp?對象
CReDrawApp?theApp;
//?CReDrawApp?初始化
BOOL?CReDrawApp::InitInstance()
{
//?如果一個運行在?Windows?XP?上的應用程序清單指定要
//?使用?ComCtl32.dll?版本?6?或更高版本來啟用可視化方式,
//則需要?InitCommonControlsEx()。否則,將無法創建窗口。
INITCOMMONCONTROLSEX?InitCtrls;
InitCtrls.dwSize?=?sizeof(InitCtrls);
//?將它設置為包括所有要在應用程序中使用的
//?公共控件類。
InitCtrls.dwICC?=?ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
//?創建?shell?管理器,以防對話框包含
//?任何?shell?樹視圖控件或?shell?列表視圖控件。
CShellManager?*pShellManager?=?new?CShellManager;
//?標準初始化
//?如果未使用這些功能并希望減小
//?最終可執行文件的大小,則應移除下列
//?不需要的特定初始化例程
//?更改用于存儲設置的注冊表項
//?TODO:?應適當修改該字符串,
//?例如修改為公司或組織名
SetRegistryKey(_T(“應用程序向導生成的本地應用程序“));
CReDrawDlg?dlg;
m_pMainWnd?=?&dlg;
INT_PTR?nResponse?=?dlg.DoModal();
if?(nResponse?==?IDOK)
{
//?TODO:?在此放置處理何時用
//??“確定”來關閉對話框的代碼
}
else?if?(nResponse?==?IDCANCEL)
{
//?TODO:?在此放置處理何時用
//??“取消”來關閉對話框的代碼
}
//?刪除上面創建的?shell?管理器。
if?(pShellManager?!=?NULL)
{
delete?pShellManager;
}
//?由于對話框已關閉,所以將返回?FALSE?以便退出應用程序,
//??而不是啟動應用程序的消息泵。
return?FALSE;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2994??2016-06-18?16:12??ReadMe.txt
?????文件??????105636??2016-06-18?17:13??ReDraw.aps
?????文件????????1993??2016-06-18?16:12??ReDraw.cpp
?????文件?????????442??2016-06-18?16:12??ReDraw.h
?????文件???????10234??2016-06-18?17:13??ReDraw.rc
?????文件????????5910??2016-06-18?16:17??ReDraw.vcxproj
?????文件????????1981??2016-06-18?16:12??ReDraw.vcxproj.filters
?????文件?????????143??2016-06-18?16:12??ReDraw.vcxproj.user
?????文件????????7580??2016-06-18?17:39??ReDrawDlg.cpp
?????文件?????????952??2016-06-18?17:08??ReDrawDlg.h
?????目錄???????????0??2016-06-18?16:12??res\
?????文件????????1266??2016-06-18?16:12??resource.h
?????文件???????67777??2009-08-31?02:31??res\ReDraw.ico
?????文件?????????668??2016-06-18?16:12??res\ReDraw.rc2
?????文件?????????139??2016-06-18?16:12??stdafx.cpp
?????文件????????1632??2016-06-18?16:12??stdafx.h
?????文件?????????234??2016-06-18?16:12??targetver.h
- 上一篇:C++下操作access數據庫
- 下一篇:HMAC-MD5 C語言算法
評論
共有 條評論