CDialog

CDialog клас є базового класу, використовується для відображення діалогових вікон на екрані. Діалогові вікна бувають двох типів: модальних і немодальною. Модальне діалогове вікно слід закрити користувачем, перш ніж програма продовжує. Діалогове вікно немодальною дозволяє користувачеві відображення діалогового вікна і повернутися до іншого завдання без скасування або видалення діалогового вікна.

CDialog об'єкт являє собою поєднання шаблону діалогове вікно та CDialog-отриманих клас. Використовуйте редактор діалогове вікно створити шаблон діалогове вікно та зберегти його в ресурс, а потім використовувати ClassWizard, щоб створити клас, отриманих від CDialog.

У діалоговому вікні, як будь-які інші вікна, отримує повідомлення від Windows. У діалоговому вікні вас цікавлять особливо обробки повідомлення про з елементів керування діалогове вікно, оскільки це, як користувач взаємодіє з діалоговому вікні. ClassWizard переглядає через потенціал повідомлення, які створені кожного елемента керування в діалоговому вікні, і ви можете вибрати, які повідомлення ви бажаєте обробляти. ClassWizard потім додає відповідні повідомлення-карти і методи повідомлення обробника новий клас для вас. Вам тільки потрібно писати код конкретного застосування функцій-членів обробника.

Якщо ви віддаєте перевагу, ви завжди можете написати повідомлення-карти і функцій-членів самі замість того, щоб за допомогою ClassWizard.

У всіх, але найбільш тривіальні діалоговому вікні ви додати змінні-члени похідні діалоговому клас, щоб зберігати дані, введені користувачем у діалоговому вікні керування або відображення даних для користувача. ClassWizard переглядає через ці елементи керування у вашому діалоговому вікні, що відповідає даних і запит на створення змінної-члена для кожного елемента керування. В той же час ви виберіть тип змінної і допустимі діапазон значень для кожної змінної. ClassWizard додає змінні-члени у вашому класі похідні діалогове вікно.

ClassWizard потім пише дані карти автоматично обробляти обмін даними між змінні-члени та діалоговому вікні керування. Карти даних надає функції, які ініціалізувати елементи діалогового вікна з належного значення, отримати дані та перевірки даних.

Щоб створити модальне діалогове вікно, побудувати об'єкт у стеку, використовуючи конструктор для вашого класу похідні діалогове вікно а потім викликати DoModal створити діалогове вікно та його елементи керування. Якщо ви хочете створити немодальною діалог, зателефонуйте Створити в конструкторі вашому класі діалогове вікно.

Можна також створити шаблон в пам'яті, за допомогою в структура DLGTEMPLATE даних, як описано в документації до Win32 SDK. Після того, як ви побудувати об'єкт CDialog , зателефонуйте CreateIndirect створити діалогове вікно немодальною, або зателефонуйте InitModalIndirect і DoModal , щоб створити модальне діалогове вікно.

ClassWizard пише обміну та перевірки даних карти в заміщенням CWnd::DoDataExchange , що ClassWizard додає новий клас діалогове вікно. Переглянути функцію член DoDataExchange у CWnd для більш на біржі та перевірки функціональності.

Як програміст, так і в рамках називають DoDataExchange опосередковано через заклик до CWnd::UpdateData.

Рамках дзвінки UpdateData , коли користувач натискає кнопку ОК, щоб закрити модальне діалогове вікно. (Дані не завантажуються Якщо натискання кнопки "Скасувати".) За замовчуванням реалізація OnInitDialog також закликає UpdateData встановити початкові значення елементів керування. Ви зазвичай перевизначити OnInitDialog для подальшого ініціалізувати елементи. OnInitDialog називається після всіх діалоговому контролю є створення та перед діалоговому вікні відображається вікно.

Ви можете назвати CWnd::UpdateData в будь-який час під час виконання діалогове вікно модальних або немодальною.

Якщо ви розробляєте діалоговому вікні вручну, додайте необхідні член змінні класу похідні діалогового себе, і додавання функцій-членів для встановлення або отримати ці значення.

Більше на ClassWizard За допомогою ClassWizard в Visual C++ програміста керівництво.

Телефонуйте CWinApp::SetDialogBkColor встановити колір тла для діалогових вікон у вашому додатку.

Модальне діалогове вікно закривається автоматично, коли користувач натискає кнопок ОК або скасувати або коли ваш код викликає функцію член EndDialog.

Коли ви застосувати діалогове вікно немодальною, завжди перевизначити OnCancel член функції і називають DestroyWindow від в ньому. Не називайте базового класу CDialog::OnCancel, оскільки вона викликає EndDialog, яка буде приховати діалогове вікно, але не буде знищити його. Ви також повинні змінити PostNcDestroy для немодальною діалогових для видалення цього, оскільки немодальною діалогові вікна зазвичай виділяється з нових. Модальні діалогові вікна зазвичай побудована на кадр і не потрібно PostNcDestroy очищення.

Більш докладну інформацію про CDialog, перегляньте статтю Діалоговому вікні теми в Visual C++ програміста керівництво.

# включити lt;afxwin.h>

|&Nbsp членів класу ; Базовий клас | Ієрархічна діаграма

Samples    MFC Sample DBFETCH MFC Sample DLGCBR32 MFC Sample DLGTEMPL MFC Sample EXTBIND MFC Sample FTPTREE MFC Sample HELLO MFC Sample MDIBIND MFC Sample VCTERM

Index