MFC (Microsoft Foundation Classes) অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি ক্লাস-ভিত্তিক লাইব্রেরি। এতে Windows API এর উপর একটি সোজা ও সহজ স্তর তৈরি করা হয়েছে, যার মাধ্যমে ডেভেলপাররা দ্রুত এবং কার্যকরভাবে অ্যাপ্লিকেশন তৈরি করতে পারেন। MFC এর কিছু গুরুত্বপূর্ণ কনসেপ্ট হল ক্লাসেস, মেসেজ এবং ইভেন্ট, যা উইন্ডোজ অ্যাপ্লিকেশন ডেভেলপমেন্টের মূল অংশ।
MFC ক্লাসেস (MFC Classes)
MFC অ্যাপ্লিকেশন মূলত বিভিন্ন প্রি-বিল্ট ক্লাস ব্যবহার করে তৈরি করা হয়। এই ক্লাসগুলো ডেভেলপারদের Windows API এর উপর কাজ করার জটিলতা এড়িয়ে সহজভাবে অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। MFC-এর কিছু প্রধান ক্লাসের মধ্যে অন্তর্ভুক্ত রয়েছে:
- CWinApp:
CWinAppহল MFC অ্যাপ্লিকেশনের মূল ক্লাস। এটি অ্যাপ্লিকেশন শুরু থেকে শেষ পর্যন্ত সব কার্যকলাপ পরিচালনা করে।CWinAppক্লাস অ্যাপ্লিকেশন ইনিশিয়ালাইজেশন, ডকুমেন্ট/ভিউ মডেল সেটআপ এবং অ্যাপ্লিকেশন বন্ধ করার কাজ করে। - CFrameWnd:
CFrameWndক্লাসটি অ্যাপ্লিকেশনের মূল উইন্ডো ফ্রেম তৈরি এবং পরিচালনা করে। এটি উইন্ডো কন্ট্রোল (যেমন মেনু, টুলবার) এবং উইন্ডোর কন্টেন্ট প্রর্দশিত করার জন্য দায়ী। - CView:
CViewক্লাসটি অ্যাপ্লিকেশনের ভিউ (UI) উপাদানগুলোর সাথে কাজ করে, যেমন ডেটা প্রদর্শন করা, গ্রাফিক্স রেন্ডার করা ইত্যাদি। এটি ডেটা কন্ট্রোল এবং ইন্টারঅ্যাকশন ম্যানেজ করার জন্য ব্যবহৃত হয়। - CDialog:
CDialogক্লাসটি ডায়ালগ বক্স তৈরি এবং পরিচালনা করার জন্য ব্যবহৃত হয়। এটি ছোট উইন্ডো যেখানে ব্যবহারকারী ইনপুট নিতে বা কোনো সেটিংস পরিবর্তন করতে পারেন। - CObject:
CObjectহল MFC ক্লাসের বেস ক্লাস, এবং MFC এর সমস্ত ক্লাস এর মাধ্যমে উত্তরাধিকার সূত্রে আসে। এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য যেমন সিরিয়ালাইজেশন এবং কপি কনস্ট্রাক্টর সরবরাহ করে। - CButton, CEdit, CStatic:
এগুলো UI কন্ট্রোলের জন্য ব্যবহৃত ক্লাস, যেমন বাটন, টেক্সট বক্স, এবং লেবেল, যেগুলো ডায়ালগ বক্স অথবা উইন্ডোতে ব্যবহার করা যায়।
MFC মেসেজ সিস্টেম (MFC Message System)
MFC উইন্ডোজ অ্যাপ্লিকেশনগুলির মধ্যে মেসেজ সিস্টেম ব্যবহৃত হয়, যা ইভেন্ট-ভিত্তিক প্রোগ্রামিংয়ের মূল অংশ। উইন্ডোজ সিস্টেমে বিভিন্ন ইভেন্ট যেমন মাউস ক্লিক, কিবোর্ড ইনপুট, উইন্ডো রিসাইজ ইত্যাদি ঘটলে, সেগুলো মেসেজ হিসেবে অ্যাপ্লিকেশনের সাথে যোগাযোগ করে।
- মেসেজ কী? (What is a Message?)
মেসেজ হল উইন্ডোজ সিস্টেমের মাধ্যমে সিস্টেমের বা ব্যবহারকারীর ক্রিয়া সম্পর্কে তথ্য পাঠানো। যেমন, যদি ব্যবহারকারী একটি বাটন ক্লিক করেন, তবে একটি মেসেজ প্রেরিত হয় যা বলে দেয় বাটনটি ক্লিক করা হয়েছে। মেসেজগুলো সাধারণত WM_ প্রিফিক্স দিয়ে শুরু হয়, যেমনWM_LBUTTONDOWN(মাউস বাম বাটন ক্লিক),WM_KEYDOWN(কিবোর্ডের কী প্রেস) ইত্যাদি। মেসেজ হ্যান্ডলিং (Message Handling)
MFC অ্যাপ্লিকেশনের মেসেজগুলি মেসেজ মাপিং ব্যবস্থার মাধ্যমে হ্যান্ডেল করা হয়। যখন একটি মেসেজ ঘটে, তখন সেই মেসেজের সাথে সম্পর্কিত ফাংশন চালু হয়। MFC অ্যাপ্লিকেশনে মেসেজ হ্যান্ডলারের সাথে সংযোগ স্থাপন করতে Message Map ব্যবহার করা হয়।উদাহরণস্বরূপ, একটি বাটন ক্লিক ইভেন্টের জন্য MFC অ্যাপ্লিকেশনটি কিছু মেসেজ হ্যান্ডলার মেথড ব্যবহার করবে:
BEGIN_MESSAGE_MAP(CMyDialog, CDialog) ON_BN_CLICKED(IDC_BUTTON1, &CMyDialog::OnButtonClick) END_MESSAGE_MAP()এখানে,
ON_BN_CLICKEDহল একটি ম্যাক্রো যা IDC_BUTTON1 (বাটনটির ID) ক্লিক হলেCMyDialog::OnButtonClickমেথডকে কল করবে।
MFC ইভেন্ট-ভিত্তিক প্রোগ্রামিং (Event-Driven Programming in MFC)
MFC অ্যাপ্লিকেশনগুলি ইভেন্ট-ভিত্তিক প্রোগ্রামিং মডেল ব্যবহার করে। এতে, ব্যবহারকারীর ক্রিয়াগুলির (যেমন বাটন ক্লিক, কিবোর্ড ইনপুট) প্রতি প্রতিক্রিয়া জানাতে মেসেজ এবং ইভেন্ট হ্যান্ডলার ব্যবহার করা হয়।
- ইভেন্ট:
একটি ইভেন্ট হল একটি নির্দিষ্ট কাজ বা ক্রিয়া, যেমন মাউস ক্লিক, কিবোর্ডের কী চাপা, উইন্ডো রিসাইজ ইত্যাদি। MFC মেসেজগুলির মাধ্যমে এই ইভেন্টগুলোকে ডিটেক্ট এবং হ্যান্ডল করে। - ইভেন্ট হ্যান্ডলার:
ইভেন্ট হ্যান্ডলার হল সেই কোড অংশ যা মেসেজ বা ইভেন্ট ঘটলে এক্সিকিউট হয়। উদাহরণস্বরূপ, যখন একটি বাটন ক্লিক করা হয়, তখন সেই ক্লিকের প্রতিক্রিয়া হিসেবে একটি ইভেন্ট হ্যান্ডলার চলতে থাকে।
MFC মেসেজ ম্যাপিং (Message Mapping in MFC)
MFC এর মেসেজ ম্যাপিং সিস্টেম একটি শক্তিশালী বৈশিষ্ট্য, যার মাধ্যমে আপনি মেসেজ এবং তার প্রতিক্রিয়াশীল কার্যাবলী (ইভেন্ট হ্যান্ডলার) সংযুক্ত করতে পারেন। এটি মূলত একটি ম্যাক্রো যা উইন্ডোজ মেসেজকে সঠিক মেথডের সাথে যুক্ত করে।
মেসেজ ম্যাপিং এর উদাহরণ:
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
ON_WM_LBUTTONDOWN() // Left mouse button click event
ON_WM_KEYDOWN() // Key press event
END_MESSAGE_MAP()
এখানে ON_WM_LBUTTONDOWN একটি ম্যাক্রো যা মাউস বাম বাটন ক্লিক হলে সিস্টেম থেকে একটি মেসেজ গ্রহণ করে এবং সঠিক ইভেন্ট হ্যান্ডলার চালু করে।
সারাংশ (Summary)
MFC এর বেসিক কনসেপ্টের মধ্যে ক্লাসেস, মেসেজ, এবং ইভেন্টগুলি অন্তর্ভুক্ত রয়েছে, যা MFC অ্যাপ্লিকেশন ডেভেলপমেন্টের মূল ভিত্তি। ক্লাসেস উইন্ডোজ অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত বিভিন্ন কম্পোনেন্ট যেমন উইন্ডো, ডায়ালগ বক্স, এবং কন্ট্রোলের জন্য প্রস্তুত। মেসেজ সিস্টেম এবং মেসেজ মাপিং অ্যাপ্লিকেশনের ইভেন্ট-ভিত্তিক আচরণ পরিচালনা করে, যখন ইভেন্ট-ভিত্তিক প্রোগ্রামিং পদ্ধতি ডেভেলপারদের ব্যবহারকারীর ক্রিয়ার প্রতিক্রিয়া তৈরি করতে সহায়তা করে।
Read more