Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Zeki Yuğnak
Zeki Yuğnak
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
4 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  C++ / C++.NET Zeki Yuğnak
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : C++ / C++.NET
Yayınlanma Tarihi : 8.8.2003
Okunma Sayısı : 25830
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 23.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
MFC'de GDI+ Nasıl Kullanılır?
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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 GDI’de 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
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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