*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
MFC (Microsoft Foundation Class) kütüphanesi, C++ programlama dili ile Windows platformunda uygulama geliştirme için kullanılır. Bu kütüphanede yer alan birçok sınıf ve fonksiyon, Windows API’lerinin kullanımını kolaylaştırarak daha hızlı ve etkili bir şekilde uygulama geliştirmeyi mümkün kılar. Bu makalede, MFC kullanarak bir paint uygulaması nasıl yapılacağı anlatılacaktır.
Paint Uygulaması Nedir?
Paint, Windows işletim sistemi ile birlikte gelen ve temel işlevleri çizim yapmak, renkleri seçmek, çizimleri kaydetmek ve yazdırmak olan bir grafik programıdır. Paint, sadece temel işlevleri olan bir programdır ve gelişmiş özellikleri yoktur. Ancak, birçok kullanıcı tarafından hala sıkça tercih edilir. Bu nedenle, kendi paint uygulamanızı yapmak isteyebilirsiniz.
MFC ile Paint Uygulaması Nasıl Yapılır?
MFC kullanarak bir paint uygulaması yapmak için, öncelikle MFC uygulama çerçevesi oluşturulması gerekmektedir. Ardından, MFC sınıflarını kullanarak çizim yüzeyi eklenir ve kullanıcının farklı araçlarla çizim yapabilmesi sağlanır.
Adım 1: MFC Uygulama Çerçevesi Oluşturma
MFC uygulama çerçevesi oluşturma işlemi, Visual Studio’da MFC uygulama projesi oluşturma işlemine benzer. Yeni bir MFC projesi oluşturmak için, Visual Studio’da “File > New > Project” seçeneğine gidin ve “MFC AppWizard (exe)” seçeneğini seçin. Ardından, projenize bir isim ve konum verin ve MFC uygulamanızın konfigürasyon ayarlarını yapın.
Adım 2: Çizim Yüzeyi Ekleme
Çizim yüzeyi eklemek için, MFC sınıfları kullanılır. MFC, çizim yüzeyleri için CWnd sınıfını kullanır. Bu sınıf, pencere nesnelerinin oluşturulmasını sağlar. Bir resim veya çizim yüzeyi oluşturmak için, CWnd sınıfından miras alan bir sınıf oluşturmanız gerekir.
Örneğin, aşağıdaki kod, bir pencere nesnesi oluşturur ve çizim yüzeyi ekler:
\tclass CMyWnd : public CWnd
\t{
\tpublic:
\t\tCMyWnd();
\t
\t\tDECLARE_MESSAGE_MAP()
\t};
\tCMyWnd::CMyWnd()
\t{
\t\tCreate(NULL, _T(\"Paint Uygulaması\"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 800, 600), NULL, NULL);
\t}
\tDECLARE_MESSAGE_MAP()
\tBEGIN_MESSAGE_MAP(CMyWnd, CWnd)
\tEND_MESSAGE_MAP()
Adım 3: Araçlar Ekleme
MFC, çizim araçları için çok çeşitli sınıflar sunar. Bu araçlar, kullanıcının çizim yüzeyine çizim yapmasına ve farklı boyutlarda ve renklerde çizimler yapmasına olanak tanır.
Örneğin, aşağıdaki kod, CMyWnd sınıfı için birkaç araç ekler:
\tclass CMyWnd : public CWnd
\t{
\tpublic:
\t\tCMyWnd();
\t
\t\tafx_msg void OnLButtonDown(UINT nFlags, CPoint point);
\t\tafx_msg void OnMouseMove(UINT nFlags, CPoint point);
\t\tafx_msg void OnLButtonUp(UINT nFlags, CPoint point);
\t\tafx_msg void OnPaint();
\t
\t\tDECLARE_MESSAGE_MAP()
\t
\tprivate:
\t\tCPoint m_ptPrev; // önceki fare konumu
\t\tBOOL m_bDrawing; // çizim modunda mı kontrol etmek için bool değişken
\t};
\tvoid CMyWnd::OnLButtonDown(UINT nFlags, CPoint point)
\t{
\t\tm_ptPrev = point; // fare konumunu kaydet
\t\tm_bDrawing = TRUE; // çizim modunu aç
\t}
\tvoid CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
\t{
\t\tif(m_bDrawing)
\t\t{
\t\t\tCClientDC dc(this);
\t\t\tdc.MoveTo(m_ptPrev);
\t\t\tdc.LineTo(point);
\t\t\tm_ptPrev = point; // fare konumunu güncelle
\t\t}
\t}
\tvoid CMyWnd::OnLButtonUp(UINT nFlags, CPoint point)
\t{
\t\tm_bDrawing = FALSE; // çizim modunu kapat
\t}
\tvoid CMyWnd::OnPaint()
\t{
\t\tCPaintDC dc(this);
\t}
\tDECLARE_MESSAGE_MAP()
\tBEGIN_MESSAGE_MAP(CMyWnd, CWnd)
\t\tON_WM_LBUTTONDOWN()
\t\tON_WM_MOUSEMOVE()
\t\tON_WM_LBUTTONUP()
\t\tON_WM_PAINT()
\tEND_MESSAGE_MAP()
Adım 4: Çizim Yüzeyine Görsel Eklemek
Kullanıcıların çizgi, daire, kare vb. gibi farklı şekillerde çizim yapabilmesi için, CWnd sınıfı kullanılır. Aşağıdaki kod, bir daire çizmek için CMyWnd sınıfına örnektir:
\tvoid CMyWnd::OnLButtonDown(UINT nFlags, CPoint point)
\t{
\t\tm_ptPrev = point;
\t\tm_bDrawing = TRUE;
\t}
\tvoid CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
\t{
\t\tif(m_bDrawing)
\t\t{
\t\t\tCClientDC dc(this);
\t\t\tdc.SelectStockObject(NULL_BRUSH);
\t\t\tdc.SelectStockObject(BLACK_PEN);
\t\t\tdc.Ellipse(m_ptPrev.x, m_ptPrev.y, point.x, point.y);
\t\t}
\t}
\tvoid CMyWnd::OnLButtonUp(UINT nFlags, CPoint point)
\t{
\t\tm_bDrawing = FALSE;
\t}
MFC Paint Uygulaması Örnekleri
1. Pencil Paint Uygulaması
Pencil, basit bir MFC paint uygulamasıdır. Bu uygulama, temel çizim araçlarını sunar ve ayrıca kullanıcıların bir resim dosyası açmalarına ve kaydetmelerine olanak tanır. Uygulamanın kaynak kodu şurada mevcuttur: https://github.com/torrentum/pencil
2. Win32 Paint Uygulaması
Win32 Paint, MFC kullanmadan tamamen Win32 API’leri kullanarak yapılmış bir paint uygulamasıdır. Bu uygulama, basit çizim araçlarının yanı sıra BMP, JPG, PNG vb. gibi farklı dosya formatlarında çizimleri kaydetmeye olanak tanır. Uygulamanın kaynak kodu şurada mevcuttur: https://github.com/danieloleary/win32paint
Sık Sorulan Sorular
1. Bu MFC paint uygulaması, farklı dosya formatlarında çizimleri kaydetmeyi destekler mi?
Hayır, bu MFC paint uygulaması sadece BMP dosya formatını destekler. Farklı dosya formatlarını desteklemek için, belirli dosya biçimleri için yerleşik MFC sınıflarını veya üçüncü taraf kütüphanelerini kullanabilirsiniz.
2. Kullanıcıların farklı renkler seçebilmesini sağlamak için ne yapabilirim?
MFC, CColorDialog sınıfını kullanarak bir renk seçici diyaloğu oluşturmanıza olanak tanır. Kullanıcının farklı renkler seçebilmesini sağlamak için, bu sınıfı kullanarak bir renk seçici diyaloğu oluşturmanız gerekir. Daha sonra, kullanıcının seçtiği rengi kullanmak için CBrush ve CPen sınıflarını kullanabilirsiniz."
MFC (Microsoft Foundation Class) kütüphanesi, C++ programlama dili ile Windows platformunda uygulama geliştirme için kullanılır. Bu kütüphanede yer alan birçok sınıf ve fonksiyon, Windows API’lerinin kullanımını kolaylaştırarak daha hızlı ve etkili bir şekilde uygulama geliştirmeyi mümkün kılar. Bu makalede, MFC kullanarak bir paint uygulaması nasıl yapılacağı anlatılacaktır.
Paint Uygulaması Nedir?
Paint, Windows işletim sistemi ile birlikte gelen ve temel işlevleri çizim yapmak, renkleri seçmek, çizimleri kaydetmek ve yazdırmak olan bir grafik programıdır. Paint, sadece temel işlevleri olan bir programdır ve gelişmiş özellikleri yoktur. Ancak, birçok kullanıcı tarafından hala sıkça tercih edilir. Bu nedenle, kendi paint uygulamanızı yapmak isteyebilirsiniz.
MFC ile Paint Uygulaması Nasıl Yapılır?
MFC kullanarak bir paint uygulaması yapmak için, öncelikle MFC uygulama çerçevesi oluşturulması gerekmektedir. Ardından, MFC sınıflarını kullanarak çizim yüzeyi eklenir ve kullanıcının farklı araçlarla çizim yapabilmesi sağlanır.
Adım 1: MFC Uygulama Çerçevesi Oluşturma
MFC uygulama çerçevesi oluşturma işlemi, Visual Studio’da MFC uygulama projesi oluşturma işlemine benzer. Yeni bir MFC projesi oluşturmak için, Visual Studio’da “File > New > Project” seçeneğine gidin ve “MFC AppWizard (exe)” seçeneğini seçin. Ardından, projenize bir isim ve konum verin ve MFC uygulamanızın konfigürasyon ayarlarını yapın.
Adım 2: Çizim Yüzeyi Ekleme
Çizim yüzeyi eklemek için, MFC sınıfları kullanılır. MFC, çizim yüzeyleri için CWnd sınıfını kullanır. Bu sınıf, pencere nesnelerinin oluşturulmasını sağlar. Bir resim veya çizim yüzeyi oluşturmak için, CWnd sınıfından miras alan bir sınıf oluşturmanız gerekir.
Örneğin, aşağıdaki kod, bir pencere nesnesi oluşturur ve çizim yüzeyi ekler:
\tclass CMyWnd : public CWnd
\t{
\tpublic:
\t\tCMyWnd();
\t
\t\tDECLARE_MESSAGE_MAP()
\t};
\tCMyWnd::CMyWnd()
\t{
\t\tCreate(NULL, _T(\"Paint Uygulaması\"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 800, 600), NULL, NULL);
\t}
\tDECLARE_MESSAGE_MAP()
\tBEGIN_MESSAGE_MAP(CMyWnd, CWnd)
\tEND_MESSAGE_MAP()
Adım 3: Araçlar Ekleme
MFC, çizim araçları için çok çeşitli sınıflar sunar. Bu araçlar, kullanıcının çizim yüzeyine çizim yapmasına ve farklı boyutlarda ve renklerde çizimler yapmasına olanak tanır.
Örneğin, aşağıdaki kod, CMyWnd sınıfı için birkaç araç ekler:
\tclass CMyWnd : public CWnd
\t{
\tpublic:
\t\tCMyWnd();
\t
\t\tafx_msg void OnLButtonDown(UINT nFlags, CPoint point);
\t\tafx_msg void OnMouseMove(UINT nFlags, CPoint point);
\t\tafx_msg void OnLButtonUp(UINT nFlags, CPoint point);
\t\tafx_msg void OnPaint();
\t
\t\tDECLARE_MESSAGE_MAP()
\t
\tprivate:
\t\tCPoint m_ptPrev; // önceki fare konumu
\t\tBOOL m_bDrawing; // çizim modunda mı kontrol etmek için bool değişken
\t};
\tvoid CMyWnd::OnLButtonDown(UINT nFlags, CPoint point)
\t{
\t\tm_ptPrev = point; // fare konumunu kaydet
\t\tm_bDrawing = TRUE; // çizim modunu aç
\t}
\tvoid CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
\t{
\t\tif(m_bDrawing)
\t\t{
\t\t\tCClientDC dc(this);
\t\t\tdc.MoveTo(m_ptPrev);
\t\t\tdc.LineTo(point);
\t\t\tm_ptPrev = point; // fare konumunu güncelle
\t\t}
\t}
\tvoid CMyWnd::OnLButtonUp(UINT nFlags, CPoint point)
\t{
\t\tm_bDrawing = FALSE; // çizim modunu kapat
\t}
\tvoid CMyWnd::OnPaint()
\t{
\t\tCPaintDC dc(this);
\t}
\tDECLARE_MESSAGE_MAP()
\tBEGIN_MESSAGE_MAP(CMyWnd, CWnd)
\t\tON_WM_LBUTTONDOWN()
\t\tON_WM_MOUSEMOVE()
\t\tON_WM_LBUTTONUP()
\t\tON_WM_PAINT()
\tEND_MESSAGE_MAP()
Adım 4: Çizim Yüzeyine Görsel Eklemek
Kullanıcıların çizgi, daire, kare vb. gibi farklı şekillerde çizim yapabilmesi için, CWnd sınıfı kullanılır. Aşağıdaki kod, bir daire çizmek için CMyWnd sınıfına örnektir:
\tvoid CMyWnd::OnLButtonDown(UINT nFlags, CPoint point)
\t{
\t\tm_ptPrev = point;
\t\tm_bDrawing = TRUE;
\t}
\tvoid CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
\t{
\t\tif(m_bDrawing)
\t\t{
\t\t\tCClientDC dc(this);
\t\t\tdc.SelectStockObject(NULL_BRUSH);
\t\t\tdc.SelectStockObject(BLACK_PEN);
\t\t\tdc.Ellipse(m_ptPrev.x, m_ptPrev.y, point.x, point.y);
\t\t}
\t}
\tvoid CMyWnd::OnLButtonUp(UINT nFlags, CPoint point)
\t{
\t\tm_bDrawing = FALSE;
\t}
MFC Paint Uygulaması Örnekleri
1. Pencil Paint Uygulaması
Pencil, basit bir MFC paint uygulamasıdır. Bu uygulama, temel çizim araçlarını sunar ve ayrıca kullanıcıların bir resim dosyası açmalarına ve kaydetmelerine olanak tanır. Uygulamanın kaynak kodu şurada mevcuttur: https://github.com/torrentum/pencil
2. Win32 Paint Uygulaması
Win32 Paint, MFC kullanmadan tamamen Win32 API’leri kullanarak yapılmış bir paint uygulamasıdır. Bu uygulama, basit çizim araçlarının yanı sıra BMP, JPG, PNG vb. gibi farklı dosya formatlarında çizimleri kaydetmeye olanak tanır. Uygulamanın kaynak kodu şurada mevcuttur: https://github.com/danieloleary/win32paint
Sık Sorulan Sorular
1. Bu MFC paint uygulaması, farklı dosya formatlarında çizimleri kaydetmeyi destekler mi?
Hayır, bu MFC paint uygulaması sadece BMP dosya formatını destekler. Farklı dosya formatlarını desteklemek için, belirli dosya biçimleri için yerleşik MFC sınıflarını veya üçüncü taraf kütüphanelerini kullanabilirsiniz.
2. Kullanıcıların farklı renkler seçebilmesini sağlamak için ne yapabilirim?
MFC, CColorDialog sınıfını kullanarak bir renk seçici diyaloğu oluşturmanıza olanak tanır. Kullanıcının farklı renkler seçebilmesini sağlamak için, bu sınıfı kullanarak bir renk seçici diyaloğu oluşturmanız gerekir. Daha sonra, kullanıcının seçtiği rengi kullanmak için CBrush ve CPen sınıflarını kullanabilirsiniz."
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle