|
MFC'de GDI+ Nasıl Kullanılır? |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu makalede sizlere
Microsoft’un yeni grafik arabirimi olan GDI+ kütüphanesinin, MFC ile nasıl kullanabileceğinizden
bahsedeceğim. Uygulamalarınızda GDI+ ı kullanabilmeniz için elinizde Platform
SDK nın son sürümünün olaması gerekir.Visual Studio.Net beta 2 veya sonrası elinizde
varsa herhangi bir güncellemeye ihtiyacınız yok demektir.Eğer elinizdeki SDK eski
bir sürüm ise aşağıdaki adreslerden son sürümünü elde edebilirsiniz.
ftp.microsoft.com
veya
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
GDI+ ı kullanabilmemiz
için aşağıdaki dosyalara ihtiyacımız olacak;
- dll : GDIplus.dll
- kütüphane :
GDIplus.lib
- başlık dosyası
: GDIplus*.h
- yardım dosyaları:
GDIcpp.chm & GDIcpp.chi
İlk olarak Visual
Studio da dialog tabanlı bir proje yaratıyoruz.
daha sonra projemizde bulunan stdafx.h başlık dosyasının içerisine aşağıdaki
satırı ekliyoruz.
#include
"gdiplus.h" //Gdi+ başlık dosyası
using
namespace
Gdiplus;
#pragma
comment(lib,
"gdiplus.lib")
|
İkinci aşamada ise uygulama sınıfımıza (Cgdiplus1App ) aşağıdaki değişkeni
ekliycez,
ULONG_PTR
m_gdiplusToken;
|
Ve sonra da yine
aynı sınıf içerisinde bulunan Cgdiplus1App::InitInstance() fonksiyonunun
içerisine şu satırları ekliyoruz.
//
GDI+ Başlangıç
Gdiplus::GdiplusStartupInput
gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken,
&gdiplusStartupInput, NULL);
|
Son olarakta yine
aynı sınıf içerisinde bulunan Cgdiplus1App::ExitInstance() fonksiyonunun içerisine
ise şu satırı ekliyoruz.
//Gdi+
Bitiş
Gdiplus::GdiplusShutdown(m_gdiplusToken);
|
Ve böylece GDI+
ı kulanmak için gerkli olan işlemleri tamamladık. Artık uygulamaya geçebiliriz.
Uygulamamız yukardaki şekildeki gibi olacak.Uygulamada eğer fare ile karenin
içine sol tuşa basılarak tıklanırsa,şekil rastgele bir renkle boyanacak.Şimdi
uygulamayı yazmaya başlayalım.
Aşağıdaki kodu
OnPaint mesajı içerisine yazıyoruz.Biraz sonra bunları açıklayacağım.
CPaintDC
dc(this);
Graphics
grp(dc.m_hDC);
SolidBrush
br(color);
grp.FillRectangle(&br,rect.left,rect.top,rect.Width(),rect.Height());
|
Burda ilk olarak
Graphics sınıfından türettiğimiz bir GDI+ grafik arabiri oluşturduk.Parametre
olarak GDIde kullandığımız grafik arabirimi olan CPaintDc sınıfından
dan türemiş olan dc nesnesinin handle değerini verdik.Daha sonra ise karenin
içini boyamak için fırça oluştuduk ve şeklimizi içi dolu olacak şekilde çizdik.
Bu işlem,farenin
sol tuşuna basıldığı sıradaki koordinat şeklin içinde olduğu sürece tekrarlanacak.Bunu
anlamak için CRect sınıfının PtInRect(CPoint point) fonksiyonunu
kulandık.Bu fonksiyon,girilen değer karenin içindeyse true değerini gönderir.Aşağıdaki
koduda OnLButtonDown mesajının içerisine ekleyelim.
if(rect.PtInRect(point))
{
m_color=RGB((rand()%255),(rand()%255),(rand()%255));
color.SetFromCOLORREF(m_color);
Invalidate();
}
|
Son olarakta Cgdiplus1Dlg
sınıfının içerisine şu değişkenleri ekleyin,
CRect rect;
Color color;
COLORREF
m_color;
|
ve bu değişkenlere
ilk değerlerini vermek için Cgdiplus1Dlg::OnInitDialog() mesajının içerisine
aşağıdaki kodu ekleyelim.
rect.SetRect(20,20,300,300);
m_color=RGB(0,0,255);
color.SetFromCOLORREF(m_color);
|
Böylece basit GDI+
örneğini tamamlamış olduk.Bizim burda yaptığımız sadece basit bir uygulamaydı,
siz GDI+ın kolaylığından yararlanarak çok daha fazla şey yapabilirsiniz.İyi
çalışmalar.
Örnek uygulamayı indirmek için tıklayınız.
Zeki Yuğnak
Erciyes Üniversitesi
Elektronik Mühendisliği
Makale:
MFC'de GDI+ Nasıl Kullanılır? C++ ve C++.NET dili Zeki Yuğnak
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|