КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Клас CListBox. 1. Додавання кнопки до вікна
1. Додавання кнопки до вікна Сьогодні ми продовжимо удосконалити нашу програму. Відкриваємо проект збережених на попередніх лекціях. File-> Open Workspace ... -> ім'я файла.dsw Давайте тепер розташуємо в нашому вікні небудь елемент управління. Наприклад, кнопку. Для кнопок в MFC існує клас CButton. Додамо в наш віконний клас змінну типу CButton: class CMyMainWnd: public CFrameWnd { public: CButton m_btn1; ... Але наявність змінної типу CButton ще не означає, що у нас кнопка з'явиться на нашому вікні. Для того, щоб вона з'явилася, ми повинні її створити. Робимо ми це за допомогою методу Create. Метод цей належить класу CButton. Тепер питання, а де й коли ми можемо створити нашу кнопку? Давайте створимо її при створенні нашого вікна. Для досягнення цього ми повинні написати обробник для події WM_CREATE (він буде називатися OnCreate). Робимо це. Додаємо функцію в клас: } ~ CMyMainWnd () { KillTimer (1); KillTimer (2); } afx_msg int OnCreate (LPCREATESTRUCT lpCreateStruct);
Додаємо макрос в карту повідомлень: ... ON_WM_TIMER () ON_WM_CREATE () END_MESSAGE_MAP ()
Додаємо реалізацію нашої функції: int CMyMainWnd :: OnCreate (LPCREATESTRUCT lpCreateStruct) { m_btn1.Create ("My Button", WS_VISIBLE | WS_CHILD, CRect (0,0,130,40), this, 1200); return 0; }
Метод Create класу CButton має декілька параметрів. Перший - це напис на кнопці ("My Button"). Другий - стилі кнопки. Ми вказали, що кнопка повинна бути видима і що кнопка буде підлеглим вікном (стиль WS_CHILD). Якщо стилів кілька, то ви з'єднуєте їх за допомогою побітового або (|). Наступний параметр визначає прямокутник, який наша кнопка займе (Координати лівого верхнього і правого нижнього кутів). Тут ми створюємо безіменний об'єкт типу CRect - класу MFC для прямокутників. Передостанній параметр (this) - це покажчик на батьківське вікно. Так як наша кнопка повинна належати нашому вікну, то ми і пишемо this (так як ми знаходимося у віконному класі). І, нарешті, останній параметр - це ідентифікатор кнопки. Ми написали 1200, але можна написати будь-яке число. Важливо, щоб воно було унікальним. У кожного об'єкта повинен бути свій ідентифікатор. Ми будемо його використовувати на наступному уроці. Запускаємо нашу програму. У вікні з'явилася кнопка:
|