VS2008,GDIPlus初步
以VS2008 MDI為例,
?
step1.在文件stdafx.h中加入如下代碼
?
#include <GdiPlus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;
?
#ifndef ULONG_PTR
#define ULONG_PRT unsigned long*
#endif
?
step2. 定義全局變量,如下所示.
?
// The one and only CPhotoMeterApp object
CPhotoMeterApp theApp;
?
//初始化gdiplus的環境
ULONG_PTR??gdiplusToken;
?
//......
?
step3.在InitInstance()函數初始化GDI+
?
?// Initialize GDI+.
?Gdiplus::GdiplusStartupInput??gdiplusStartupInput;
?Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
?
// Parse command line for standard shell commands, DDE, file open
?CCommandLineInfo cmdInfo;
?ParseCommandLine(cmdInfo);
?
step4.在ExitInstance()函數中銷毀GDI+
?
//shutdown GDI+
?Gdiplus::GdiplusShutdown(gdiplusToken);
?
step5.在void CAboutDlg::OnPaint()舉個GDI+繪制的例子
?
void CAboutDlg::OnPaint()
{
?CPaintDC dc(this); // device context for painting
?Graphics graphics(dc.GetSafeHdc());???? //Graphics graphics(dc.m_hDC);也可以
?
CRect rect;
?GetDlgItem(IDC_STATIC_FRAME)->GetWindowRect(&rect);??? //IDC_STATIC_FRAME是個picture控件,visible=false
?ScreenToClient(&rect);
??
?//Brush
?Gdiplus::LinearGradientBrush lingrbrush(Gdiplus::Rect(rect.left, rect.top, rect.Width(), rect.Height()),? //? 繪制區域
??Color(250, 248,242,240),???//? 第一種顏色
??Color(250, 255,255,255),???//? 第二種顏色
??(Gdiplus::REAL)(270));????//? 漸變色的角度
?graphics.FillRectangle(&lingrbrush, Gdiplus::Rect(rect.left,rect.top,rect.Width(),rect.Height() ) );
?
?Gdiplus::Pen pen(Color(255,145,155,156));
?Gdiplus::Pen penshade(Color(100,145,155,156));
?graphics.DrawRectangle(&pen,Gdiplus::Rect(rect.left,rect.top,rect.Width(),rect.Height()));
?graphics.DrawRectangle(&penshade,Gdiplus::Rect(rect.left,rect.top,rect.Width()+1,rect.Height()+1));
?// 不為繪圖消息調用 CDialog::OnPaint()
}
?
?
?step6.貼圖效果
?
?
?
?
step7.列外,CSDN的博客做的真TMD差勁.不兼容Chrome,寫文章界面一點都不有好,還IT社區,一幫吃shi的,,,
總結
以上是生活随笔為你收集整理的VS2008,GDIPlus初步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己有项目怎样融资 有好的项目如何找融资
- 下一篇: VS2008 SP1补丁