MFC (Microsoft Foundation Classes) এ গ্রাফিক্স অ্যানিমেশন, ড্রয়িং, এবং কাস্টম পেইন্টিং করার জন্য Pen, Brush, এবং অন্যান্য গ্রাফিক্স অবজেক্ট ব্যবহার করা হয়। এগুলি ব্যবহার করে আপনি উইন্ডো বা ডায়ালগ বক্সে বিভিন্ন গ্রাফিক্যাল উপাদান যেমন লাইন, রেকটেঙ্গেল, বৃত্ত, পাথ ইত্যাদি আঁকতে পারেন।
পেন (Pen)
Pen হল একটি গ্রাফিক্যাল অবজেক্ট যা দিয়ে আপনি লাইন আঁকতে পারেন। পেনের বিভিন্ন বৈশিষ্ট্য থাকে, যেমন লাইন স্টাইল (Solid, Dashed, Dotted), কালার এবং বেধ (Width)।
Pen ব্যবহার করার জন্য প্রথমে CPen ক্লাস ব্যবহার করে একটি পেন অবজেক্ট তৈরি করতে হয়, এরপর সেই পেনটি CDC (Device Context) এ ব্যবহার করা হয়।
Code Example:
CPen pen(PS_SOLID, 3, RGB(255, 0, 0)); // Red color, solid line, 3 pixels width
pDC->SelectObject(&pen); // Select the pen into the device context
pDC->MoveTo(10, 10); // Set starting point
pDC->LineTo(100, 100); // Draw a line from (10,10) to (100,100)
এখানে একটি Solid Red Pen তৈরি করা হয়েছে যার বেধ ৩ পিক্সেল এবং এটি CDC তে সিলেক্ট করা হয়েছে।
ব্রাশ (Brush)
Brush হল একটি গ্রাফিক্যাল অবজেক্ট যা দিয়ে আপনি ফিলিং (পৃষ্ঠতল পূর্ণ) করতে পারেন। এটি ব্যবহার করে আপনি রেকটেঙ্গেল, এলিপ্স, পলিগন ইত্যাদি আকার পূর্ণ করতে পারেন। ব্রাশের মধ্যে রঙ, প্যাটার্ন, গ্রেডিয়েন্ট ইত্যাদি থাকতে পারে।
Brush ব্যবহার করতে CBrush ক্লাস ব্যবহার করা হয়। CDC তে ব্রাশ সিলেক্ট করা হয় এবং তারপর সেটি দিয়ে ফিলিং করা হয়।
Code Example:
CBrush brush(RGB(0, 255, 0)); // Green color brush
pDC->SelectObject(&brush); // Select the brush into the device context
pDC->Rectangle(10, 10, 100, 100); // Draw and fill a rectangle
এখানে একটি Green Brush তৈরি করা হয়েছে এবং সেটি দিয়ে একটি রেকটেঙ্গেল ফিল করা হয়েছে।
অন্যান্য গ্রাফিক্স অবজেক্ট
MFC তে Pen এবং Brush ছাড়া আরও অনেক গ্রাফিক্স অবজেক্ট ব্যবহার করা যায়। কিছু গুরুত্বপূর্ণ গ্রাফিক্স অবজেক্টের মধ্যে রয়েছে:
১. Font
Font ব্যবহার করে আপনি টেক্সটের ফন্ট স্টাইল, সাইজ, কালার ইত্যাদি কাস্টমাইজ করতে পারেন। এটি সাধারণত টেক্সট ড্রয়িং করার সময় ব্যবহৃত হয়।
Code Example:
CFont font;
font.CreatePointFont(120, _T("Arial")); // Create font with 12 pt size and Arial
pDC->SelectObject(&font); // Select the font into the device context
pDC->TextOut(10, 120, _T("Hello, MFC!")); // Draw text at (10, 120)
এটি একটি Arial ফন্ট তৈরি করবে যার সাইজ 12 পয়েন্ট এবং তারপর TextOut ফাংশন দিয়ে টেক্সট প্রদর্শন করবে।
২. Polygon (পলিগন)
Polygon হল এমন একটি গ্রাফিক্যাল অবজেক্ট যা একাধিক পয়েন্টের মাধ্যমে একটি সিল করা আকার তৈরি করে। এটি একটি ক্লোজড শেপ হিসেবে কাজ করে।
Code Example:
POINT points[3] = { {10, 10}, {100, 10}, {50, 50} };
pDC->Polygon(points, 3); // Draw a triangle using points array
এখানে একটি Triangle আঁকা হয়েছে যার পয়েন্টগুলো points অ্যারে দ্বারা নির্ধারিত।
৩. Ellipse (এলিপ্স)
Ellipse হল একটি বৃত্তাকার আকৃতি, যা একটি রেকটেঙ্গেলের ভিতর আঁকা হয়। এটি সাধারণত একটি ডায়াগ্রাম বা শেপ ড্রয়িংয়ের জন্য ব্যবহৃত হয়।
Code Example:
pDC->Ellipse(10, 10, 100, 100); // Draw an ellipse inside a rectangle (10, 10) to (100, 100)
এটি একটি Ellipse আঁকবে যা রেকটেঙ্গেলের ভিতর অবস্থান করবে।
গ্রাফিক্স অবজেক্ট ব্যবহারের জন্য কিছু গুরুত্বপূর্ণ পদ্ধতি
MFC তে গ্রাফিক্স অবজেক্ট ব্যবহার করার সময়, CDC ক্লাসের বিভিন্ন পদ্ধতি ব্যবহৃত হয়, যেমন:
- SelectObject(): পেন, ব্রাশ, ফন্ট ইত্যাদি ডিভাইস কন্টেক্সটে নির্বাচন করার জন্য ব্যবহৃত হয়।
- MoveTo() এবং LineTo(): একটি লাইন আঁকতে ব্যবহৃত হয়।
- Rectangle(): একটি রেকটেঙ্গেল আঁকতে ব্যবহৃত হয়।
- Ellipse(): একটি এলিপ্স আঁকতে ব্যবহৃত হয়।
- TextOut(): টেক্সট আঁকার জন্য ব্যবহৃত হয়।
সারাংশ
MFC তে Pen, Brush, এবং অন্যান্য গ্রাফিক্স অবজেক্ট ব্যবহার করে অ্যাপ্লিকেশনে কাস্টম গ্রাফিক্স ড্রয়িং এবং পেইন্টিং করা হয়। Pen লাইন আঁকার জন্য, Brush বিভিন্ন শেপ ফিল করার জন্য, এবং Font টেক্সট স্টাইল কাস্টমাইজ করার জন্য ব্যবহৃত হয়। এছাড়া, Polygon, Ellipse এবং অন্যান্য গ্রাফিক্যাল অবজেক্টের মাধ্যমে বিভিন্ন আকৃতি আঁকা যায়। MFC এর গ্রাফিক্স ফিচারগুলি ব্যবহারকারীর ইন্টারফেসে আকর্ষণীয় এবং কাস্টমাইজড গ্রাফিক্স উপাদান যুক্ত করার জন্য অত্যন্ত কার্যকর।
Read more