69282

Динамічний обмін даними. Функція Initlnstance

Лекция

Информатика, кибернетика и программирование

Динамічний обмін даними (DDX — Dynamic Data Exchange) — це засіб, за допомогою якого можна легко передавати дані між елементами управління діалогового вікна і змінними-членами додатку. Щоб створити змінну DDX, досить клацнути на елементі управління в ресурсах шаблону...

Украинкский

2014-10-02

74.5 KB

0 чел.

Лекція № 2

Тема: Динамічний обмін даними. Функція Initlnstance.

План

  1.  Динамічний обмін даними
  2.  Функція Initlnstance

Динамічний обмін даними

Динамічний обмін даними (DDXDynamic Data Exchange) — це засіб, за допомогою якого можна легко передавати дані між елементами управління діалогового вікна і змінними-членами додатку. Щоб створити змінну DDX, досить клацнути на елементі управління в ресурсах шаблону діалогового вікна і в контекстному меню, що з'явилося, вибрати пункт Add Variable (Додати змінну). Для елементу управління Edit Control (Поле введення) це запустить майстер Add Member Variable Wizard (Майстер додавання змінної-члена), зображений на мал. 1.16. Можна створити два типи змінних DDX.

Змінна DDX, що управляє (DDX Control Variable). Змінна, що управляє, пов'язує елемент управління діалогового вікна із змінною, що є екземпляром класу-оболонки даного елементу управління в бібліотеці MFC. Прикладом такого підходу є клас CEdit. Наявність змінної-члена типу CEdit, прив'язаної до поля введення, дозволяє маніпулювати цим полем за допомогою функцій-членів класу CEdit, уникнувши необхідності використовувати більш трудомісткий спосіб созда-' ния повідомлень Windows. Класі^ї) елементів управління розглядаються в розділі 10 "Елементів управління". Зазвичай цей тип змінної DDX використовується у тому випадку, коли необхідно тим або іншим чином маніпулювати самим елементом управління, наприклад, переміщати або змінювати його розмір.

Змінна значення DDX (DDX Value Variable). Змінна значення пов'язує елемент управління діалогового вікна із змінною MFC, що містить значення цього елементу управління. Наприклад, якщо є поле введення, що містить число, то можна створити змінну значення DDX типу CInt, яка міститиме це значення.


Оскільки мова про маніпулювання самим елементом управління поки не йде, скинемо прапорець Control Variable (Змінна, що управляє). Потім в списку Variable, що розкривається, type (Тип змінної) виберіть тип CString. (У тій версії Visual Studio, з якою працював автор, типу CString не було в списку, тому його доводилося вводити уручну. Якщо в новішій версії цей тип не з'явився, то зробіть те ж саме.) Тепер введемо ім'я змінної-члена, по якому можна звернутися до значення елементу управління. В даному випадку було вибрано ім'я m_strMessageText (див. мал. 1.16). Ще раз перевіривши правильність введеної інформації, клацніть на кнопці Finish (Готово).

Тепер, коли змінна значення DDX створена і підключена до поля введення, залишилося організувати передачу її значення під час виконання. Для цього застосовується функція CDialog: :UpdateData. Щоб використовувати цю функцію, досить викликати її з логічним значенням True як аргумент, якщо необхідно передати дані з елементів управління діалогового вікна змінні, або значенням False, якщо необхідно передати дані змінних в елементи управління діалогового вікна. За умовчанням прийнято значення True. Отже, у функцію OnBnClickedOk діалогового вікна необхідно внести зміни. Якщо вікно редактора коди вже закрите, то щоб відкрити його, досить вибрати в панелі Class View клас CHelloDialogDlg і двічі клацнути на імені функції OnBnClickedOk. Після внесення змін функція повинна виглядати таким чином:

void CHelloDialogDlg::OnBnClickedOk() {

UpdateData(TRUE);

AfxMessageBox(m_strMessageText); //  ONOKO; }

Звернете увагу на звернення до функції UpdateData. Зараз вона передає дані з діалогового вікна в змінні DDX. Це означає, що змінна m_strMessageText набуде значення, введеного користувачем в полі введення діалогового вікна, яке згодом буде відображено при зверненні до функції AfxMessageBox. Відкомпілюйте і запустіть додаток. Результат повинен виглядати подібно до представленого на мал. 1.17.

У справжньому розділі розглядається спадкоємство класів уявлення і їх застосування для доступу до даним, що містяться в документі. Але, перш ніж приступати до вивчення уявлень, розглянемо механізм взаємодії додатку SDI з новостворюваним документом.


Функція
Initlnstance

При створенні нового застосування майстер Appwizard самостійно реалізує перевизначувану функцію Initlnstance згідно параметрам, вибраним користувачем в його діалогових вікнах. Наприклад, якщо вибраний додаток однодокументного інтерфейсу (SDI), то майстер AppWizard створить наступний код:

BOOL CMyApp::Initlnstance() {

//Стандартна ініціалізація

SetDialogBkColor() ;

//Встановити   сірий колір  фону діалог,   вікна

//Загрузіть- параметри стандартного файлу INI

LoadStdProfileSettings();

//  Зареєструвати шаблони документа додатку

// Шаблони документа  виступають  сполучною ланкою між

//  документами,   фреймовими  вікнами і представленнями.

CSingleDocTemplate*  pDocTemplate;

pDocTemplate  = new CSingleDocTemplate(IDR_MAINFRAME,

RUNTIME_CLASS(CMyDoc),

RUNTIME_CLASS(CMainFrame) , // головне  фреймове  вікно  SDI

RUNTIME_CLASS(CMyView)); AddDocTemplate(pDocTemplate);

OnFileNew(); //   створити  порожній документ if (m_lpCmdLine[0]  !=   '\0') {

// TODO: додати код обробки параметрів // командного рядка

}

return TRUE;

}

Функція Initlnstance, яку створює майстер AppWizard, встановлює спочатку сірий колір фону діалогового вікна, а потім завантажує всі параметри стандартного файлу ЇМ, які повинні бути встановлені. Тепер необхідно поклопотатися про основні службові операції: код створює покажчик на шаблон документа, який виступає сполучною ланкою між класом CDocument, класом фреймового вікна і всіма уявленнями, створеними для документа. В даному випадку майстер AppWizard зареєстрував як клас документа клас CMyDoc, як клас фреймового вікна— CMainFrame, а як клас представлення— CMyView. Потім, за допомогою функції-члена AddDocTemplate, програмний код додає тільки що створений шаблон документа до колекції шаблонів документа, а також викликає функцію-член OnFileNew класу CMyDoc, що дозволяє створити порожній документ, необхідний для запуску додатку. Останні рядки цієї функції дозволяють розробникові (в рамках заготівки) додати власний код обробки параметрів командного рядка (наприклад імені файлу, який повинен бути відкритий додатком).


 

А также другие работы, которые могут Вас заинтересовать

81770. Мотивы преступления и возмездия в произведениях отечественной литературы 45.61 KB
  В художественном арсенале Достоевского можно обнаружить множество средств к которым он прибегает при обрисовке Раскольникова. Портрет Раскольникова набросан лаконично: Кстати он был замечательно хорош собою с прекрасными темными глазами темнорус роста выше среднего тонок строен. Особенно обстоятельно Достоевский рассматривает мотивы преступления Раскольникова. В раскрытии безмерности издевательств над людьми и поругания всего живого большое значение приобретает символический сон Раскольникова из V главы где предстаёт зверское...
81771. Образ Маши Мироновой и смысл названия романа 32.62 KB
  И к Екатерине Маша обращается с прошением о помиловании о милости а не о просьбе соблюсти закон. Маша обращается к Екатерине как к матери Отечества мотив материнства и отцовства очень важен для Пушкина. Маша Миронова и Петр Гринев заслужили свое счастье т. Маша и Гринев преодолевая трудности все испытания которые выпали на их долю спасаются любовью.
81772. Тема героя и толпы в произведениях отечественной литературы 31.76 KB
  Горький Старуха Изергиль Герои притч старухи Изергиль Ларра и Данко являются по сути вариациями на одну и ту же тему: оба они герои байронического типа сильные личности противопоставленные толпе посредственностей. И толпа губит и положительного Данко и отрицательного Ларру. Геройромантик либо гибнет как Данко либо замыкается в своем страдании и одиночестве отвергнутый обществом против условностей которого протестовал как Ларра. Свобода Данко напротив это свобода взять на себя ответственность за коллектив свобода...
81773. Основные мотивы и образы лирики М.Ю.Лермонтова ( на примере 3 – 4 стихотворений). Чтение наизусть и разбор одного стихотворения 34.41 KB
  Мотив одиночества возникает у Л. в трактовку темы одиночества это прежде всего его абсолютный и глубоко личный характер связанный с неприятием лермонтовским героем мира коренных основ миропорядка. В этой благодарности за все чем я обманут в жизни был обнажается двойственная природа лермонтовского одиночества; враждебный человеку мир с отъединенностью от врагов и друзей и волевое гордое непримиренное Я поэта не желающее пойти на какойлибо компромисс с этим миром ни перед чем не останавливающееся в противостоянии ему...
81774. Сатирическое мастерство М. А. Булгакова 32.21 KB
  Удивительный талант Михаила Афанасьевича Булгакова позволяет ему следуя традициям писателейсатириков XIX века использовать этот художественный прием в своих произведениях Примером таких сатирических произведений могут служить повести Роковые яйца и Собачье сердце такой же прием использует автор и в своем романе Мастер и Маргарита . В основе повести Собачье сердце рискованный эксперимент. Отсюда ирония звучащая на страницах повести. Самым ярким представителем этой жизни на страницах повести является Швондер который норовит немедленно...
81775. Роль отцовского завета в судьбах героев произведений отечественной классики 19 века 33.3 KB
  Главный герой Петр Гринев отправляясь на службу получает наказ от отца: Прощай Петр. Петр Гринев являясь главным участником событий повествователеммемуаристом следует завету своего отца. Сын своего отца честного служаки времен Елизаветы который ушел в отставку чтобы не присягать Екатерине продолжает традиции своей семьи построенных на любви к ближним уважении к родителям любви к своей Родине и с честью выходит из всех испытаний. Главная героиня романа Маша Миронова дочь бедных дворян бесприданница олицетворение любви и...
81776. Художественные приемы создания образа Печорина в романе М. Лермонтова «Герой нашего времени» 47.87 KB
  Образ Печорина одно из главных открытий Лермонтова. Изображению и раскрытию образа Печорина как героя особой исторической эпохи и подчинена своеобразная композиционносюжетная структура романа. Одна представляет собою объективное повествование о Печорине извне в записках странствующего офицера Бэла Максим Максимыч Предисловие к Журналу Печорина другая субъективноисповедальное самораскрытие героя изнутри в его Журнале Тамань Княжна Мери Фаталист .
81777. Символизм как литературное направление. Анализ стихотворения одного из поэтов-символистов 47.33 KB
  Бальмонта Ю. В поэтических формулах Бальмонта Сологуба Гиппиус Мережковского отрицается истинность реального мира объявляемого лишь комплексом ощущений творцахудожника: . Бальмонта М. В 90х годах вышли сборники его стихотворений: Под северным небом 1894 В безбрежности 1895 Тишина 1897; в 900е годы в период творческого взлета Бальмонта Горящие здания 1900 Будем как солнце 1903 Только любовь 1903.
81778. Образ метели в произведениях отечественной литературы 32.93 KB
  Все ее действие развертывается на фоне разгулявшихся природных стихий: Ветер ветер На всем божьем свете Ветер хлесткий гуляет свищет и зол и рад Разыгралась чтойто вьюга ох пурга какая спасе Вьюга долгим смехом Заливается в снегах Очевидно что образы ветра метели романтичны и имеют символический смысл. Ветер ветер На ногах не стоит человек. Ветер ветер На всем Божьем свете. Во второй строфе напор стихии как бы смягчается ее действия становятся не гневны а почти нежны и появляются уменьшительноласкательные...