Skill

MFC এর মৌলিক কন্ট্রোলস (Basic Controls in MFC)

এমএফসি (MFC) - Microsoft Technologies

417

MFC (Microsoft Foundation Classes) অ্যাপ্লিকেশন তৈরি করার সময়, ব্যবহারকারীর ইন্টারফেস (UI) তৈরি করতে বিভিন্ন মৌলিক কন্ট্রোলস ব্যবহার করা হয়। MFC তে অনেক ধরনের কন্ট্রোলস রয়েছে, যেগুলি ডায়ালগ বক্স বা উইন্ডোতে বিভিন্ন উপাদান প্রদর্শন ও নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এখানে MFC এর কিছু মৌলিক কন্ট্রোলসের বর্ণনা দেওয়া হলো।


বাটন (Button)

Button Control ব্যবহারকারীর ইন্টারফেসের একটি মৌলিক অংশ, যা সাধারণত একটি কমান্ড অ্যাকশন বা ট্রিগার করার জন্য ব্যবহৃত হয়। যেমন, "OK", "Cancel", "Submit" ইত্যাদি বাটন।

  • Types of Buttons:
    • Push Button: সাধারণ বাটন, যা ক্লিক করার মাধ্যমে কোনো ফাংশন বা ইভেন্ট ট্রিগার করে।
    • Check Box: চেকবক্স বাটন, যা ব্যবহারকারীকে একটি বিকল্প নির্বাচন করার সুযোগ দেয়।
    • Radio Button: রেডিও বাটন ব্যবহারকারীকে একাধিক বিকল্পের মধ্যে একটি নির্বাচন করার সুযোগ দেয়।

Code Example:

CButton m_button;
m_button.Create(_T("Click Me"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 10, 100, 40), pParentWnd, IDC_BUTTON);

টেক্সট বক্স (Edit Control)

Edit Control হল একটি টেক্সট ইনপুট ফিল্ড, যেখানে ব্যবহারকারী টেক্সট ইনপুট দিতে পারেন। এটি সাধারণত ফর্ম বা ডায়ালগ বক্সে ব্যবহার করা হয়।

  • Single-line Edit Control: এক লাইনের টেক্সট ইনপুটের জন্য।
  • Multi-line Edit Control: একাধিক লাইনের টেক্সট ইনপুটের জন্য, যেমন নোট বা মন্তব্য প্রদানের ক্ষেত্র।

Code Example:

CEdit m_editBox;
m_editBox.Create(WS_CHILD | WS_VISIBLE | ES_LEFT, CRect(10, 50, 300, 70), pParentWnd, IDC_EDIT);

লেবেল (Static Text Control)

Static Text Control সাধারণত শুধুমাত্র পাঠ্য প্রদর্শন করতে ব্যবহৃত হয়, এর মাধ্যমে ব্যবহারকারীকে কোনো বার্তা বা নির্দেশনা দেওয়া হয়।

Code Example:

CStatic m_label;
m_label.Create(_T("This is a label"), WS_CHILD | WS_VISIBLE, CRect(10, 90, 200, 110), pParentWnd, IDC_LABEL);

কম্বো বক্স (Combo Box)

Combo Box হলো একটি ড্রপডাউন মেনু, যা ব্যবহারকারীকে একটি নির্দিষ্ট বিকল্প নির্বাচন করতে সাহায্য করে। এটি সাধারণত Single-select বা Multiple-select ড্রপডাউন মেনু হিসেবে ব্যবহার হয়।

  • Dropdown Style: কম্বো বক্সে ক্লিক করলে একটি ড্রপডাউন তালিকা প্রদর্শিত হয়।
  • Drop List Style: ব্যবহারকারী শুধু তালিকা থেকে একটি আইটেম নির্বাচন করতে পারে।

Code Example:

CComboBox m_comboBox;
m_comboBox.Create(WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, CRect(10, 130, 200, 150), pParentWnd, IDC_COMBO);
m_comboBox.AddString(_T("Option 1"));
m_comboBox.AddString(_T("Option 2"));

লিস্ট বক্স (List Box)

List Box ব্যবহারকারীর জন্য একটি তালিকা প্রদর্শন করতে ব্যবহৃত হয়। এর মধ্যে এক বা একাধিক আইটেম প্রদর্শিত হয় এবং ব্যবহারকারী একটি বা একাধিক আইটেম নির্বাচন করতে পারেন।

Code Example:

CListBox m_listBox;
m_listBox.Create(WS_CHILD | WS_VISIBLE | LBS_STANDARD, CRect(10, 170, 200, 250), pParentWnd, IDC_LIST);
m_listBox.AddString(_T("Item 1"));
m_listBox.AddString(_T("Item 2"));

স্ক্রোল বার (Scroll Bar)

Scroll Bar একটি UI কন্ট্রোল যা ব্যবহারকারীদের লম্বা বা প্রশস্ত কন্টেন্ট স্ক্রল করতে সাহায্য করে। এটি সাধারণত ডায়ালগ বক্স বা উইন্ডোতে ব্যবহার হয়, যেখানে কন্টেন্টের পরিমাণ স্ক্রীনের বাইরে চলে যায়।

Code Example:

CScrollBar m_scrollBar;
m_scrollBar.Create(SBS_VERT | WS_CHILD | WS_VISIBLE, CRect(220, 10, 240, 250), pParentWnd, IDC_SCROLLBAR);

পিকচার কন্ট্রোল (Picture Control)

Picture Control ব্যবহারকারীকে একটি চিত্র (ইমেজ) প্রদর্শন করতে সাহায্য করে। এটি সাধারণত Static Control হিসেবে ব্যবহৃত হয়, কিন্তু চিত্র প্রদর্শন করার জন্য বিশেষভাবে কনফিগার করা থাকে।

Code Example:

CStatic m_picture;
m_picture.Create(_T(""), WS_CHILD | WS_VISIBLE | SS_BITMAP, CRect(10, 250, 100, 350), pParentWnd, IDC_PICTURE);
m_picture.SetBitmap((HBITMAP)LoadImage(NULL, _T("image.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE));

প্রগ্রেস বারের কন্ট্রোল (Progress Bar Control)

Progress Bar হল একটি UI কন্ট্রোল যা প্রক্রিয়ার অগ্রগতি বা স্ট্যাটাস প্রদর্শন করতে ব্যবহৃত হয়, যেমন ফাইল ডাউনলোড বা কোনো কাজের প্রগ্রেস। এটি সাধারণত একটি রৈখিক বার আকারে দেখানো হয় যা কাজের অগ্রগতি নির্দেশ করে।

Code Example:

CProgressCtrl m_progress;
m_progress.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 300, 200, 320), pParentWnd, IDC_PROGRESS);
m_progress.SetRange(0, 100);
m_progress.SetPos(50);  // Set progress to 50%

এভাবে MFC এর মৌলিক কন্ট্রোলস ব্যবহার করে আপনি অ্যাপ্লিকেশনের ইন্টারফেস তৈরি করতে পারেন এবং ব্যবহারকারীর সঙ্গে সহজভাবে যোগাযোগ স্থাপন করতে পারবেন।

Content added By

MFC (Microsoft Foundation Classes) ব্যবহার করে অ্যাপ্লিকেশন তৈরি করার সময়, ব্যবহারকারীর ইন্টারফেস ডিজাইন করতে কিছু মৌলিক কন্ট্রোলস ব্যবহৃত হয়। এই কন্ট্রোলস গুলি সহজ কিন্তু অত্যন্ত গুরুত্বপূর্ণ, এবং তারা ম্যানিপুলেটিভ ইন্টারঅ্যাকশন সক্ষম করে। এখানে Button, Edit Box, এবং Static Text কন্ট্রোলসের ব্যবহার এবং তাদের বৈশিষ্ট্য আলোচনা করা হলো।


বাটন (Button)

Button Control হল এমন একটি কন্ট্রোল, যা ব্যবহারকারীকে নির্দিষ্ট একটি কাজ করার জন্য ক্লিক করতে সহায়তা করে। সাধারণত এটি কমান্ড, অপশন বা ইন্টারঅ্যাকশন ট্রিগার করার জন্য ব্যবহৃত হয়। MFC তে বিভিন্ন ধরনের বাটন থাকে, যেমন:

  • Push Button: সাধারণত ক্লিক করলে একটি ইভেন্ট বা ফাংশন ট্রিগার হয়।
  • Check Box: একাধিক বিকল্পের মধ্যে একটি বা একাধিক নির্বাচন করার জন্য ব্যবহার হয়।
  • Radio Button: একাধিক বিকল্পের মধ্যে একটিকে নির্বাচন করার জন্য।

Code Example:

CButton m_button;
m_button.Create(_T("Click Me"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 10, 100, 40), pParentWnd, IDC_BUTTON);

এটি একটি Push Button তৈরি করবে, যার টেক্সট "Click Me" হবে এবং এটি একটি নির্দিষ্ট ডায়ালগে দৃশ্যমান হবে।


এডিট বক্স (Edit Box)

Edit Control হল একটি ইনপুট কন্ট্রোল, যা ব্যবহারকারীকে টেক্সট ইনপুট করতে সাহায্য করে। এটি সাধারণত ফর্মে টেক্সট ডাটা প্রবেশ করানোর জন্য ব্যবহৃত হয়। MFC তে Single-line এবং Multi-line এডিট কন্ট্রোলস থাকে।

  • Single-line Edit Box: এটি একটি একক লাইনের টেক্সট ইনপুট ফিল্ড, যা সাধারণত ইউজারনেম বা পাসওয়ার্ড ইত্যাদির জন্য ব্যবহৃত হয়।
  • Multi-line Edit Box: এটি একাধিক লাইন ইনপুটের জন্য ব্যবহৃত হয়, যেমন মন্তব্য বা বিস্তারিত তথ্যের জন্য।

Code Example:

CEdit m_editBox;
m_editBox.Create(WS_CHILD | WS_VISIBLE | ES_LEFT, CRect(10, 50, 300, 70), pParentWnd, IDC_EDIT);

এটি একটি Single-line Edit Box তৈরি করবে, যেখানে ব্যবহারকারী টেক্সট ইনপুট করতে পারবেন।


স্ট্যাটিক টেক্সট (Static Text)

Static Text Control সাধারণত শুধুমাত্র পাঠ্য প্রদর্শন করতে ব্যবহৃত হয়। এটি ডায়ালগ বা উইন্ডোর মধ্যে ব্যবহারকারীকে বার্তা, নির্দেশনা বা তথ্য প্রদর্শন করার জন্য উপযোগী। এটি কোনও ইন্টারঅ্যাকশন বা ক্লিকের জন্য নয়, বরং শুধুমাত্র একটি তথ্য প্রদর্শনকারী উপাদান হিসেবে কাজ করে।

Code Example:

CStatic m_label;
m_label.Create(_T("This is a static label"), WS_CHILD | WS_VISIBLE, CRect(10, 90, 200, 110), pParentWnd, IDC_LABEL);

এটি একটি Static Text কন্ট্রোল তৈরি করবে, যার টেক্সট হবে "This is a static label" এবং এটি দৃশ্যমান হবে।


সারাংশ

MFC অ্যাপ্লিকেশন তৈরি করার সময় Button, Edit Box, এবং Static Text কন্ট্রোলস খুবই গুরুত্বপূর্ণ ভূমিকা পালন করে। Button ব্যবহারকারীকে কোনো কর্ম সম্পাদন করতে সাহায্য করে, Edit Box ব্যবহারকারীকে ইনপুট দেওয়ার সুযোগ দেয়, এবং Static Text শুধু তথ্য প্রদর্শন করতে ব্যবহৃত হয়। MFC এর এই মৌলিক কন্ট্রোলস গুলি ব্যবহারকারীর ইন্টারফেস তৈরি করতে সাহায্য করে এবং প্রতিটি কন্ট্রোলের ব্যবহার আলাদা কাজের জন্য উপযোগী।

Content added By

MFC (Microsoft Foundation Classes) এ Combo Box, List Box, এবং Radio Button হল কিছু জনপ্রিয় কন্ট্রোল, যেগুলি ব্যবহারকারীর ইন্টারফেসে বিভিন্ন ধরনের ইন্টারঅ্যাকশন সক্ষম করে। এই কন্ট্রোলসগুলি তথ্য নির্বাচন বা প্রদর্শন করার জন্য ব্যবহৃত হয়। এখানে এই কন্ট্রোলসগুলোর বিস্তারিত বর্ণনা দেওয়া হলো।


কম্বো বক্স (Combo Box)

Combo Box হল একটি ড্রপডাউন মেনু, যা ব্যবহারকারীকে একাধিক বিকল্পের মধ্যে থেকে একটি বিকল্প নির্বাচন করতে সাহায্য করে। এটি সাধারণত ছোট জায়গায় অনেক অপশন দেখানোর জন্য ব্যবহৃত হয়, যেখানে শুধু একটি আইটেম নির্বাচন করা হয়। Combo Box দুটি প্রধান ধরনের হয়:

  • Dropdown Style: এখানে ক্লিক করলে একটি ড্রপডাউন তালিকা প্রদর্শিত হয়।
  • Drop List Style: শুধুমাত্র তালিকা থেকে একটি আইটেম নির্বাচন করা যায় এবং নতুন কিছু টাইপ করা সম্ভব নয়।

Code Example:

CComboBox m_comboBox;
m_comboBox.Create(WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, CRect(10, 130, 200, 150), pParentWnd, IDC_COMBO);
m_comboBox.AddString(_T("Option 1"));
m_comboBox.AddString(_T("Option 2"));

এটি একটি Combo Box তৈরি করবে, যেখানে দুটি অপশন থাকবে, "Option 1" এবং "Option 2"।


লিস্ট বক্স (List Box)

List Box একটি কন্ট্রোল যা একাধিক আইটেম প্রদর্শন করে এবং ব্যবহারকারীকে এক বা একাধিক আইটেম নির্বাচন করতে দেয়। এটি সাধারণত ডেটা বা অপশন প্রদর্শন করার জন্য ব্যবহৃত হয়, যেখানে ব্যবহারকারী একটি বা একাধিক আইটেম নির্বাচন করতে পারেন।

Code Example:

CListBox m_listBox;
m_listBox.Create(WS_CHILD | WS_VISIBLE | LBS_STANDARD, CRect(10, 170, 200, 250), pParentWnd, IDC_LIST);
m_listBox.AddString(_T("Item 1"));
m_listBox.AddString(_T("Item 2"));

এটি একটি List Box তৈরি করবে, যেখানে "Item 1" এবং "Item 2" প্রদর্শিত হবে এবং ব্যবহারকারী একটি বা একাধিক আইটেম নির্বাচন করতে পারবেন।


রেডিও বাটন (Radio Button)

Radio Button হল এমন একটি কন্ট্রোল, যা ব্যবহারকারীকে একাধিক বিকল্পের মধ্যে থেকে একটি বিকল্প নির্বাচন করার জন্য ব্যবহৃত হয়। রেডিও বাটনের মাধ্যমে, ব্যবহারকারী একাধিক বিকল্পের মধ্যে একটি নির্বাচন করতে পারেন, এবং যখন একটি রেডিও বাটন নির্বাচিত হয়, অন্য সমস্ত রেডিও বাটনগুলি অটোমেটিক্যালি আনসিলেক্টেড হয়ে যায় (যদি তারা একই গ্রুপে থাকে)।

Code Example:

CRadioButton m_radioButton1;
CRadioButton m_radioButton2;
m_radioButton1.Create(_T("Option 1"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, CRect(10, 10, 100, 30), pParentWnd, IDC_RADIO1);
m_radioButton2.Create(_T("Option 2"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, CRect(10, 40, 100, 60), pParentWnd, IDC_RADIO2);

এটি দুটি Radio Button তৈরি করবে, যার মধ্যে "Option 1" এবং "Option 2" থাকবে, এবং ব্যবহারকারী একটিকে নির্বাচন করতে পারবেন।


সারাংশ

Combo Box, List Box, এবং Radio Button হল এমন কন্ট্রোলস, যেগুলি ব্যবহারকারীর নির্বাচনযোগ্য অপশন প্রদান করে। Combo Box একটি ড্রপডাউন মেনু আকারে অপশন প্রদর্শন করে, List Box একাধিক আইটেমের মধ্যে থেকে নির্বাচন করতে দেয়, এবং Radio Button ব্যবহারকারীকে একাধিক বিকল্পের মধ্যে থেকে একটি নির্বাচন করার সুযোগ দেয়। MFC এ এই কন্ট্রোলস ব্যবহার করে বিভিন্ন ধরনের ইন্টারঅ্যাকশন এবং অপশন সিলেকশন তৈরি করা যায়, যা অ্যাপ্লিকেশনের ইউজার ইন্টারফেসকে আরও শক্তিশালী ও ইন্টারঅ্যাকটিভ করে তোলে।

Content added By

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 তে মেসেজ ম্যাপ কিভাবে কাজ করে তা বোঝার জন্য একটি উদাহরণ দেখা যাক:

  1. Windows Messages: যখন ব্যবহারকারী কোনো কন্ট্রোল ইন্টারঅ্যাক্ট করে (যেমন বাটন ক্লিক), এটি একটি Windows মেসেজ পাঠায়।
  2. Message Map: মেসেজ ম্যাপ এই মেসেজগুলোকে প্রক্রিয়া করে এবং সংশ্লিষ্ট ফাংশনটিকে কল করে।
  3. Event Handling: সংশ্লিষ্ট ফাংশন সেই ইভেন্টটি প্রক্রিয়া করে (যেমন, বাটন ক্লিক হলে একটি মেসেজ বক্স প্রদর্শন করা)।

সারাংশ

MFC তে Control Events এবং Message Map ব্যবহৃত হয় ব্যবহারকারীর ইন্টারঅ্যাকশনের সাথে অ্যাপ্লিকেশনকে ইন্টারঅ্যাক্টিভ করার জন্য। Control Events হল কন্ট্রোলের সাথে সংযুক্ত ইভেন্ট (যেমন বাটন ক্লিক, টেক্সট ইনপুট), এবং Message Map হল একটি সিস্টেম যা এই ইভেন্টগুলোকে সংশ্লিষ্ট ফাংশনের সাথে ম্যাপ করে। মেসেজ ম্যাপের মাধ্যমে, MFC অ্যাপ্লিকেশনটি ইভেন্টগুলোকে সঠিকভাবে হ্যান্ডেল করতে পারে এবং ব্যবহারকারীর ক্রিয়াগুলোর উপর ভিত্তি করে কার্য সম্পাদন করতে পারে।

Content added By

MFC (Microsoft Foundation Classes) এ ডায়ালগ বক্স তৈরি ও ব্যবহার করা খুবই গুরুত্বপূর্ণ একটি বিষয়। ডায়ালগ বক্স ব্যবহারকারীর ইনপুট নেয়ার জন্য অথবা তাদেরকে বিভিন্ন অপশন বা তথ্য প্রদর্শন করার জন্য ব্যবহৃত হয়। MFC তে ডায়ালগ বক্স তৈরি এবং ব্যবহারের জন্য কিছু নির্দিষ্ট পদ্ধতি অনুসরণ করতে হয়। এখানে ডায়ালগ বক্স তৈরি করার ধাপ এবং তা ব্যবহার করার পদ্ধতি ব্যাখ্যা করা হলো।


ডায়ালগ বক্স তৈরি

MFC তে ডায়ালগ বক্স তৈরি করতে দুইটি প্রধান উপায় রয়েছে:

  1. ডায়ালগ বক্স রিসোর্স ব্যবহার করে তৈরি করা
  2. ডায়ালগ ক্লাস তৈরি করে ডায়ালগ বক্সের মধ্যে কন্ট্রোলস অ্যাড করা

এখানে আমরা প্রথম পদ্ধতি নিয়ে আলোচনা করব।

ডায়ালগ বক্স রিসোর্স তৈরি করা

  1. Visual Studio এ নতুন MFC অ্যাপ্লিকেশন তৈরি করুন
  2. Resource View এ যান এবং Dialogs ফোল্ডার এ রাইট ক্লিক করে Add Resource নির্বাচন করুন।
  3. Dialog নির্বাচন করুন এবং তারপর New Dialog নির্বাচন করে নতুন ডায়ালগ বক্স তৈরি করুন।
  4. ডায়ালগ বক্সের মধ্যে আপনি প্রয়োজনীয় কন্ট্রোলস যেমন বাটন, টেক্সট বক্স, লেবেল, চেকবক্স, ইত্যাদি রাখতে পারেন। এগুলি করতে আপনি Toolbox ব্যবহার করতে পারেন।
    • ডায়ালগ বক্সের বিভিন্ন কন্ট্রোলস এর জন্য Ctrl+Alt+X চেপে Toolbox ওপেন করুন এবং ড্র্যাগ & ড্রপ করে কন্ট্রোলস অ্যাড করুন।

ডায়ালগ বক্সের জন্য ক্লাস তৈরি করা

  1. ডায়ালগ বক্স রিসোর্স তৈরি করার পর, Class View এ গিয়ে ডায়ালগ বক্সের ক্লাস তৈরি করুন। এটি ক্লাস উইজার্ডের মাধ্যমে করা যায়।
    • ডায়ালগ বক্সের রিসোর্সের উপর রাইট ক্লিক করুন এবং Add Class নির্বাচন করুন।
    • MFC Class নির্বাচন করুন এবং ডায়ালগ বক্সের জন্য একটি ক্লাস নাম দিন (যেমন CMyDialog)।
    • এই ক্লাসটি ডায়ালগ বক্সের সাথে সংযুক্ত হবে।

ডায়ালগ বক্স ব্যবহার

ডায়ালগ বক্স চালু করা

ডায়ালগ বক্স চালু করতে, একটি মডাল বা মডলেস ডায়ালগ বক্স ব্যবহার করা যায়। মডাল ডায়ালগ বক্স ব্যবহারকারীকে শুধুমাত্র সেই ডায়ালগ বক্স বন্ধ না করা পর্যন্ত অন্য কোন উইন্ডোতে যেতে দেয় না। অন্যদিকে, মডলেস ডায়ালগ বক্স ব্যবহারকারীকে ডায়ালগ বক্সের বাইরে কাজ করার অনুমতি দেয়।

  • Modal Dialog Box:

    CMyDialog dlg;
    dlg.DoModal();
    
  • Modeless Dialog Box:

    CMyDialog* pDlg = new CMyDialog;
    pDlg->Create(IDD_MY_DIALOG, pParentWnd);
    pDlg->ShowWindow(SW_SHOW);
    

এখানে CMyDialog হল ডায়ালগ বক্সের ক্লাস, যা আপনি তৈরি করেছেন।


ডায়ালগ বক্সে কন্ট্রোলস হ্যান্ডেল করা

ডায়ালগ বক্সে উপস্থিত কন্ট্রোলস (যেমন বাটন, এডিট বক্স, চেকবক্স) গুলির সাথে ইন্টারঅ্যাকশন করতে হলে, তাদেরকে হ্যান্ডল করার জন্য হ্যান্ডলার ফাংশন তৈরি করতে হবে। উদাহরণস্বরূপ, একটি বাটনের ক্লিক ইভেন্ট হ্যান্ডল করতে নিচের মতো কোড ব্যবহার করা যায়:

বাটন ক্লিক ইভেন্ট হ্যান্ডল করা

  1. Message Map এর মধ্যে বাটনের ক্লিক ইভেন্ট যোগ করুন:
BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)
  ON_BN_CLICKED(IDC_MY_BUTTON, &CMyDialog::OnBnClickedMyButton)
END_MESSAGE_MAP()
  1. Button Click Handler Function তৈরি করুন:
void CMyDialog::OnBnClickedMyButton()
{
  AfxMessageBox(_T("Button Clicked"));
}

এটি IDC_MY_BUTTON নামক বাটন ক্লিক হলে একটি ম্যাসেজ বক্স প্রদর্শন করবে।


ডায়ালগ বক্সের ভ্যালিডেশন

ডায়ালগ বক্সে সাধারণত ইনপুট ভ্যালিডেশন করা হয়। উদাহরণস্বরূপ, আপনি একটি Edit Box কন্ট্রোলের মাধ্যমে ব্যবহারকারী থেকে নাম গ্রহণ করছেন, এবং আপনি চাচ্ছেন না যে এটি খালি থাকুক।

void CMyDialog::OnOK()
{
  CString strName;
  GetDlgItemText(IDC_NAME_EDIT, strName);

  if (strName.IsEmpty()) {
    AfxMessageBox(_T("Name cannot be empty"));
    return;
  }

  CDialogEx::OnOK();
}

এই কোডে, যদি Edit Box খালি থাকে, তাহলে একটি বার্তা প্রদর্শিত হবে এবং ডায়ালগ বক্স বন্ধ হবে না।


সারাংশ

MFC তে ডায়ালগ বক্স তৈরি ও ব্যবহারের পদ্ধতি খুবই সোজা। Visual Studio ব্যবহার করে আপনি সহজেই ডায়ালগ বক্স রিসোর্স তৈরি করতে পারেন এবং তারপর তার জন্য ক্লাস তৈরি করতে পারেন। ডায়ালগ বক্সে কন্ট্রোলস যোগ করতে এবং তাদের হ্যান্ডল করতে Message Map ব্যবহার করতে হয়। মডাল বা মডলেস ডায়ালগ বক্স ব্যবহারের মাধ্যমে, আপনি ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করতে পারেন এবং ইনপুট ভ্যালিডেশনও করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...