MFC (Microsoft Foundation Classes) অ্যাপ্লিকেশন তৈরি করার সময়, কন্ট্রোলসের সাথে ইন্টারঅ্যাক্ট করার জন্য Control Events এবং Message Map ব্যবহৃত হয়। Control Events ব্যবহারকারীর ইন্টারঅ্যাকশন ট্র্যাক করে, যেমন বাটন ক্লিক বা টেক্সট ইনপুট। Message Map হল একটি সিস্টেম যা Windows মেসেজ (যেমন ক্লিক, কীবোর্ড ইভেন্ট) এবং কন্ট্রোল ইভেন্টের মধ্যে সম্পর্ক তৈরি করে।
কন্ট্রোল ইভেন্ট (Control Events)
Control Events হল এমন ঘটনা যা একটি কন্ট্রোল (যেমন, বাটন, এডিট বক্স, ইত্যাদি) ব্যবহার করার মাধ্যমে ঘটে। উদাহরণস্বরূপ, একটি বাটন ক্লিক করা, টেক্সট ইনপুট করা বা একটি রেডিও বাটন নির্বাচন করা। এই ইভেন্টগুলির মাধ্যমে কন্ট্রোলের সাথে ইন্টারঅ্যাকশন ট্র্যাক করা যায় এবং উপযুক্ত ফাংশন বা কোড চালানো যায়।
কিছু সাধারণ কন্ট্রোল ইভেন্ট:
- BN_CLICKED: একটি বাটন ক্লিক করার সময় ঘটে।
- EN_CHANGE: একটি এডিট বক্সে টেক্সট পরিবর্তিত হলে ঘটে।
- LBN_SELCHANGE: একটি লিস্ট বক্সে নির্বাচিত আইটেম পরিবর্তিত হলে ঘটে।
- CBN_SELCHANGE: একটি কম্বো বক্সে নির্বাচিত আইটেম পরিবর্তিত হলে ঘটে।
Code Example:
void CMyDialog::OnBnClickedButton()
{
AfxMessageBox(_T("Button Clicked!"));
}
এখানে, OnBnClickedButton ফাংশনটি একটি বাটন ক্লিক করার সময় ট্রিগার হবে এবং একটি মেসেজ বক্স প্রদর্শিত হবে।
মেসেজ ম্যাপ (Message Map)
Message Map হল একটি মেকানিজম যা Windows মেসেজ এবং কন্ট্রোল ইভেন্টগুলোকে যুক্ত করে। এটি মেসেজ হ্যান্ডলিং সিস্টেমের একটি অংশ, যা সিস্টেম থেকে প্রাপ্ত মেসেজ বা ইভেন্টকে সংশ্লিষ্ট ফাংশনে রিডাইরেক্ট করে। MFC তে মেসেজ ম্যাপ ব্যবহৃত হয় ইভেন্টগুলিকে একটি ফাংশনের সাথে সংযুক্ত করতে।
Message Map সাধারণত ON_COMMAND, ON_BN_CLICKED, ON_EN_CHANGE ইত্যাদি ম্যাক্রোর মাধ্যমে করা হয়।
Code Example:
BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON, &CMyDialog::OnBnClickedButton)
ON_EN_CHANGE(IDC_EDIT, &CMyDialog::OnEnChangeEdit)
END_MESSAGE_MAP()
এখানে, ON_BN_CLICKED ম্যাক্রো IDC_BUTTON বাটন ক্লিক করার সময় OnBnClickedButton ফাংশনটিকে কল করবে এবং ON_EN_CHANGE ম্যাক্রো IDC_EDIT এডিট বক্সের টেক্সট পরিবর্তিত হলে OnEnChangeEdit ফাংশনটিকে কল করবে।
মেসেজ ম্যাপের কাজ
MFC তে মেসেজ ম্যাপ কিভাবে কাজ করে তা বোঝার জন্য একটি উদাহরণ দেখা যাক:
- Windows Messages: যখন ব্যবহারকারী কোনো কন্ট্রোল ইন্টারঅ্যাক্ট করে (যেমন বাটন ক্লিক), এটি একটি Windows মেসেজ পাঠায়।
- Message Map: মেসেজ ম্যাপ এই মেসেজগুলোকে প্রক্রিয়া করে এবং সংশ্লিষ্ট ফাংশনটিকে কল করে।
- Event Handling: সংশ্লিষ্ট ফাংশন সেই ইভেন্টটি প্রক্রিয়া করে (যেমন, বাটন ক্লিক হলে একটি মেসেজ বক্স প্রদর্শন করা)।
সারাংশ
MFC তে Control Events এবং Message Map ব্যবহৃত হয় ব্যবহারকারীর ইন্টারঅ্যাকশনের সাথে অ্যাপ্লিকেশনকে ইন্টারঅ্যাক্টিভ করার জন্য। Control Events হল কন্ট্রোলের সাথে সংযুক্ত ইভেন্ট (যেমন বাটন ক্লিক, টেক্সট ইনপুট), এবং Message Map হল একটি সিস্টেম যা এই ইভেন্টগুলোকে সংশ্লিষ্ট ফাংশনের সাথে ম্যাপ করে। মেসেজ ম্যাপের মাধ্যমে, MFC অ্যাপ্লিকেশনটি ইভেন্টগুলোকে সঠিকভাবে হ্যান্ডেল করতে পারে এবং ব্যবহারকারীর ক্রিয়াগুলোর উপর ভিত্তি করে কার্য সম্পাদন করতে পারে।
Read more