Custom Messages তৈরি এবং ব্যবহার

MFC এর Events এবং Message Handling Mechanism - এমএফসি (MFC) - Microsoft Technologies

635

MFC (Microsoft Foundation Classes)-এ Custom Messages হল বিশেষ মেসেজ যা অ্যাপ্লিকেশন বা উইন্ডো ক্লাসের মধ্যে নির্দিষ্ট কাজ করার জন্য প্রেরিত হয়। MFC তে ডিফল্ট মেসেজগুলি যেমন WM_PAINT, WM_KEYDOWN, ইত্যাদি থাকে, কিন্তু কখনও কখনও আপনাকে নিজের নির্দিষ্ট কাজ সম্পাদন করার জন্য Custom Messages তৈরি করতে হতে পারে। Custom Messages ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের কাস্টম কার্যকারিতা যুক্ত করতে পারেন এবং বিভিন্ন উইন্ডো বা কন্ট্রোলের মধ্যে ইন্টারঅ্যাকশন পরিচালনা করতে পারেন।


Custom Message তৈরি

MFC তে Custom Messages সাধারণত উইন্ডো মেসেজের মান (message ID) কাস্টমাইজ করে তৈরি করা হয়। Custom Message তৈরি করতে, আপনাকে প্রথমে একটি নতুন মেসেজ আইডি ডিফাইন করতে হবে। সাধারণত, এগুলো WM_USER বা এর উপরে শুরু হয়, কারণ WM_USER হল Windows API দ্বারা রিজার্ভড মেসেজের পরবর্তী সংখ্যা।

Custom Message ডিফাইন করা

Code Example:

#define WM_MY_CUSTOM_MESSAGE (WM_USER + 1)

এখানে WM_MY_CUSTOM_MESSAGE একটি কাস্টম মেসেজ আইডি যা WM_USER থেকে শুরু হয়ে নতুন মেসেজ আইডি তৈরি করেছে। WM_USER হল একটি রিজার্ভড সংখ্যা যা ব্যবহারকারীর মেসেজের জন্য ব্যবহৃত হয়।


Custom Message পাঠানো

একবার আপনি একটি Custom Message তৈরি করলে, আপনি এই মেসেজটি অন্য উইন্ডো বা কন্ট্রোলে পাঠাতে পারেন। Custom Message পাঠানোর জন্য, আপনি PostMessage() অথবা SendMessage() ফাংশন ব্যবহার করতে পারেন। PostMessage() অ্যাসিনক্রোনাসভাবে মেসেজ পাঠায়, আর SendMessage() সিঙ্ক্রোনাসভাবে মেসেজ পাঠায় এবং মেসেজ প্রক্রিয়া সম্পন্ন না হওয়া পর্যন্ত অপেক্ষা করে।

PostMessage বা SendMessage ব্যবহার করা

Code Example:

// মেসেজ পাঠানোর উদাহরণ
PostMessage(WM_MY_CUSTOM_MESSAGE, wParam, lParam);

এখানে PostMessage() ব্যবহার করা হয়েছে WM_MY_CUSTOM_MESSAGE মেসেজ পাঠানোর জন্য। wParam এবং lParam হল অতিরিক্ত ডাটা যা আপনি মেসেজের সাথে পাঠাতে পারেন।


Custom Message গ্রহণ করা

Custom Message গ্রহণ করার জন্য, আপনাকে মেসেজ হ্যান্ডলারের মাধ্যমে তা প্রক্রিয়া করতে হবে। ON_MESSAGE() ম্যাক্রো ব্যবহার করে আপনি Custom Message হ্যান্ডলিং করতে পারেন। যখন নির্দিষ্ট উইন্ডো বা কন্ট্রোল আপনার Custom Message গ্রহণ করবে, তখন সংশ্লিষ্ট মেসেজ হ্যান্ডলার কল হবে এবং আপনি সেখানে আপনার কোড বা কার্যকারিতা রাখতে পারবেন।

MFC-তে Custom Message হ্যান্ডলার তৈরি করা

Code Example:

BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
    ON_MESSAGE(WM_MY_CUSTOM_MESSAGE, OnMyCustomMessage)
END_MESSAGE_MAP()

LRESULT CMyWnd::OnMyCustomMessage(WPARAM wParam, LPARAM lParam)
{
    // কাস্টম মেসেজ হ্যান্ডলিং কোড
    AfxMessageBox(_T("Custom Message Received!"));
    return 0; // মেসেজটি সঠিকভাবে প্রক্রিয়া করা হয়েছে।
}

এখানে ON_MESSAGE() ম্যাক্রোটি WM_MY_CUSTOM_MESSAGE মেসেজটি হ্যান্ডল করার জন্য OnMyCustomMessage() ফাংশন কল করে। আপনি এখানে আপনার কাস্টম লজিক বা কার্যকারিতা রাখবেন।


Custom Message এর সাথে অতিরিক্ত ডেটা পাঠানো

Custom Messages-এর সাথে আপনি অতিরিক্ত ডেটাও পাঠাতে পারেন, যেমন সংখ্যার মান, পয়েন্ট, স্ট্রিং ইত্যাদি। এটি wParam এবং lParam এর মাধ্যমে করা হয়, যেখানে wParam এবং lParam হল অতিরিক্ত ডেটা ধারণ করার জন্য ব্যবহৃত ফিল্ড। আপনি এসব ফিল্ডে আপনার পছন্দমত ডেটা রাখতে পারেন এবং পরে হ্যান্ডলারের মধ্যে তা ব্যবহার করতে পারেন।

উদাহরণস্বরূপ অতিরিক্ত ডেটা পাঠানো

Code Example:

// Custom message with additional data
PostMessage(WM_MY_CUSTOM_MESSAGE, 123, (LPARAM)_T("Hello, MFC!"));

এখানে, wParam হিসেবে একটি integer মান (123) এবং lParam হিসেবে একটি স্ট্রিং পাঠানো হচ্ছে। আপনি এই ডেটাগুলো পরে মেসেজ হ্যান্ডলার থেকে গ্রহণ করে প্রক্রিয়া করতে পারবেন।

Code Example (Handler):

LRESULT CMyWnd::OnMyCustomMessage(WPARAM wParam, LPARAM lParam)
{
    int number = (int)wParam;           // wParam থেকে integer প্রাপ্তি
    CString message = (CString)lParam;  // lParam থেকে string প্রাপ্তি

    CString msg;
    msg.Format(_T("Received number: %d, message: %s"), number, message);
    AfxMessageBox(msg);

    return 0;
}

এখানে, মেসেজ হ্যান্ডলারে wParam এবং lParam থেকে অতিরিক্ত ডেটা গ্রহণ করা হয়েছে এবং একটি মেসেজ বক্সে দেখানো হয়েছে।


Custom Message এর ব্যবহার

Custom Messages সাধারণত নিচের কাজগুলোতে ব্যবহৃত হয়:

  • কমিউনিকেশন: বিভিন্ন উইন্ডো বা কন্ট্রোলের মধ্যে যোগাযোগ স্থাপন করার জন্য।
  • ডেটা পাসিং: এক উইন্ডো থেকে অন্য উইন্ডোতে ডেটা পাঠানোর জন্য।
  • ইউজার ইন্টারফেস কাস্টমাইজেশন: উইন্ডো বা কন্ট্রোলের আচরণ কাস্টমাইজ করার জন্য।

সারাংশ

Custom Messages হল এমন মেসেজ যা আপনি নিজের অ্যাপ্লিকেশনে বিশেষভাবে তৈরি করতে পারেন। এগুলি অ্যাপ্লিকেশন বা উইন্ডো ক্লাসের মধ্যে নির্দিষ্ট কার্যকারিতা সম্পাদনের জন্য ব্যবহৃত হয়। Custom Messages পাঠানোর জন্য PostMessage() বা SendMessage() ফাংশন ব্যবহার করা হয় এবং এগুলি গ্রহণ করার জন্য ON_MESSAGE() ম্যাক্রো ব্যবহার করা হয়। এগুলির সাহায্যে আপনি কাস্টম ডেটা পাঠাতে এবং উইন্ডো বা কন্ট্রোলের আচরণ কাস্টমাইজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...