ПредишенСледващото

1. Въведение

Структурата на библиотеката MFC включва редица класове, които представляват стандартните диалогови прозорци. Тези класове ви позволяват лесно да се изпълняват такива често използваните операции като отваряне и съхраняване на файлове, избор на цвят, подбор на шрифта и т.н. Всички тези класове наследяват от CCommonDialog, което от своя страна се получава от базовия клас на CDialog.

Това са класовете на стандартния диалогов прозорец и техните функции:

  • CColorDialog - панел, за да изберете цвят
  • CFileDialog - файл комисия за подбор, за да отваряте и записвате на диск
  • CFindReplaceDialog - подложка за операции търсене и замяна
  • CFontDialog - панел, за да изберете шрифт
  • CPrintDialog - за да се покаже панел, за да отпечатате документа
  • CPageSetupDialog - документ панел селекция формат
  • COleDialog - Панел за управление на OLE технология

Уроци регулиращи стандартните диалогови прозорци са определени в afxdlgs.h файл. Поради това, използването на тези класове в заявката, трябва да включите този файл в изходния текст с помощта на директивата за #include.

2. Комисията за подбор на цветовете (CColorDialog клас)

За да се покаже диалоговия прозорец стандарт, за да изберете цвета, който трябва да се създаде обект CColorDialog клас, а след това да се извика методът DoModal. Когато създавате клас SColorDialog обект, използвайте следната конструктора:

Всички параметри са задължителни конструктор, обаче, използването на тези параметри може да помогне в някои случаи.

ClrInit първи параметър ви позволява да определите цвета избрана по подразбиране, след отваряне на диалоговия прозорец. Ако не е посочен параметър, както в цвят, избран по подразбиране, ще се използва от черния цвят.

параметър DwFlags съдържа набор от флагове, които контролират интерактивен панел избор на цвят. Използвайки го, за да блокирате или разрешите експлоатация на някои интерактивни контроли цветни комисията за подбор. Ако създадете клас обект CColorDialog а не да определите параметъра dwFlags, обаче, можете да персонализирате диалоговия прозорец, като се свържете елемента m_cc този клас. Параметърът dwFlags, посочено в конструктора се използва за инициализиране m_cc. Промени в m_cc елемент трябва да бъде направено преди панел се показва на екрана.

Последно параметър pParentWnd може да се използва за определяне на прозорец на диалоговия прозорец.

методи клас CSolorDialog

За да се покаже диалоговия панел за избор на цвят на екрана, трябва да използвате метода DoModal. След дисплей панела на екрана, потребителят може да изберете цвят от него и натиснете OK или бутона Cancel, за да потвърдите цвят, или да го изоставят. Когато диалоговия прозорец се затваря, метод DoModal връща IDOK и IDCANCEL, в зависимост от кой бутон е кликнато:

На екрана ще се покаже стандартен избор на цвят Цвят диалоговия панел. В горната половина на вложката 48 са разположени правоъгълника, които имат различни цветове. Те са така наречените основни цвята (основни цвята). Можете да изберете един от тези цветове, и кликнете OK. След диалоговия прозорец се затваря (метод DoModal е завършил работата си), можете да използвате методи CColorDialog класа, за да научите цвета, избран от потребителя.

За да се определи цвета, избран от потребителя, че е възможно да се приложи метод GetColor клас CColorDialog на. Този метод връща стойност COLORREF, съответстваща на избрания цвят.

Ако потребителят не е достатъчно основни цвята, представени в диалоговия прозорец Color, тя може да изберете до 16 допълнителни цвята. За да направите това, което трябва да натиснете бутон DefineCustom цветове. В диалоговия прозорец ще се промени външния му вид - няма да има допълнителни мерки за контрол, за да можете да изберете някоя от 16,777,216 цвята. Когато се избере цвят, трябва да кликнете Добавяне на специален бутон цветове. Избраният цвят ще бъде добавен към допълнителните цветове (цветове по избор) - един от най-свободните правоъгълници ще се превърне в подходящ цвят.

С помощта на CColorDialog метод GetSavedCustomColors клас, можете да посочите допълнителни цвят, избран от потребителя в диалоговия прозорец Color. Този метод връща указател към масив от 16 елемента от тип COLORREF. Всеки елемент масив описва един допълнителен цвят.

Когато диалоговия прозорец показва приложението Цвят за първи път, всички правоъгълници, които показват допълнителни цветове са бели. Допълващи се цветове, избрани от потребителя, се съхраняват в приложението. След рестартирането на вторичните цветове са нулирани приложения.

3. File Селекционния комитет (CFileDialog клас)

Сред диалоговия прозорец стандарт, за който MFC библиотека, специален клас, има панели за работа с файловата система - Open и Save As. Отворете диалоговия панел ви позволява да изберете един или повече файлове и да ги отворите за по-нататъшна употреба. Save As диалоговия панел ви позволява да изберете името на файла да пише в документа.

За управление на диалоговия прозорец Open и Save As е един CFileDialog клас. Помислете за CFileDialog конструктора по-подробно:

клас обекти CFileDialog представляват диалоговия панел Отворени Запиши като или в зависимост от параметър bOpenFileDialog. Ако параметър bOpenFileDialog съдържа стойността TRUE, тогава обекта ще бъде създадено, диалоговия прозорец на контролния панел Open, а ако FALSE - вложката Save As.

параметър BOpenFileDialog е единственият необходим параметър, който трябва да посочите. конструктор Останалите параметри CFileDialog клас се определят различни режима на работа панел и не може да бъде определен.

За да създадете обект клас CFileDialog. представляващи диалогов прозорец за отваряне на файлове (mFileOpen) и обект, който представлява диалоговия прозорец за запазване на файлове (mFileSaveAs), можете да използвате следната строителя призовава:

В много случаи, имената на файловете, които искате да се отваря или затваря, има определено разширение. параметър lpszDefExt ви позволява да укажете разширението на файла се използва по подразбиране. Това означава, че ако потребителят при определянето на името на файла не конкретизира разширение на името на файла се задава автоматично на разширение, по подразбиране. Ако определянето на диалоговия прозорец на свойствата чрез създаване програмист lpszDefExt NULL на, разширението на файла трябва да се дава изрично от потребителя.

В някои случаи, за да се появяват диалогови прозорци с предварително избрани името на файла. За да укажете името на файла по подразбиране, настройката се прилага lpszFileName. Ако параметър lpszFileName е настроен на NULL, тази функция не се изпълнява.

С dwFlags сигнализират можете да промените външния вид и някои други функции, стандартен диалог клас CFileDialog панели. Тя може да записва комбинация от флаговете, които контролират различните характеристики на тези панели. Например, OFN_HIDEREADONLY флаг означава, че вложката е отстранен от преминаването към "Read Only", и OFN_OVERWRITEPROMPT флаг (използван за Save As панел) - че е необходимо да се покаже диалоговия прозорец с предупреждение, ако потребителят избере да спаси името на съществуващ файл.

прозорец за избор на файл панели обикновено имат списък на така наречените филтри, включително имена на файлове и видове името на файла разширения от този тип. Избор на филтър, потребителят се посочва, че той иска да работи само с наличието на подходящо удължаване на файлове от определен тип. Файлове с други разширения в диалоговия прозорец се показва.

списък филтър може да бъде определен чрез lpszFilter параметър. В същото време, можете да посочите няколко филтъра. Всеки филтър се определя от две линии - низ, съдържащ името на филтъра, и линията, в която се изброяват съответните разширения име на файла. Ако един вид съответства на множество разширения, те са разделени от ;. Низ, съдържащ името на филтъра се отделя от линията за продължителен характер файл |. Ако се използва повече от един филтър, те също са разделени от символа |. Например, като низ, който определя филтрите, можете да използвате низ от вида:

Диалогови прозорци, предоставени от клас обекти CFileDialog, може или не може да има прозорец майка. За да зададете прозорец родител, трябва да се премине към конструктор CFileDialog показалеца, за да го прави чрез параметър pParentWnd.

методи CFileDialog клас

Създаване на обект клас CFileDialog все още не се показва съответния диалогов прозорец. За да направите това, използвайте метод DoModal класа CFileDialog.Pri извика методът DoModal за създадена по-рано клас обект CFileDialog съответстващ Отваря се диалогов прозорец на екрана. След като потребителят излиза от диалоговия прозорец, метод DoModal връща IDOK или IDCANCEL за успех, а нула - в случай на грешка:

След като потребителят затвори диалоговия прозорец и DoModal метод връща, можете да използвате други методи CFileDialog клас. за да се определи имената на избраните файлове:

  • GetPathName - Задава пълния път до файла
  • GetFileName - Посочва името на избрания файл
  • GetFileExt - Определя избран разширение на името
  • GetFileTitle - Позволява да посочите заглавието на избрания файл
  • GetNextPathName - Ако се диалогов прозорец ви позволява да изберете няколко файла наведнъж, можете да използвате този метод, за да се определи пълния път до следното от избраните файлове
  • GetReadOnlyPref - Позволява ви да видите атрибут статус "само за четене" (само за четене) на избрания файл
  • GetStartPosition - Връща първия елемент в списъка на имената на файловете

Най-важният метод - GetPathName. Той получава пълния път на избрана от диалоговия прозорец Open или Запиши като файл. Ако се диалогов прозорец ви позволява да изберете няколко файла, след това метод GetPathName връща масив от низове, състоящи се от няколко реда, за прекратяване двоична нула. Първият от тези редове съдържа пътя до директорията, в която се намират избраните файлове, останалите линии съдържат имената на избраните файлове. Маркирайте реда, съдържащ пътя директория не създава проблеми, но за да получите имената на избраните файлове, трябва да използвате методите и GetStartPosition GetNextPathName.

метод GetStartPosition връща тип позиция. Тя е предназначена за прехвърляне на метод GetNextPathName и да получите на следващия името на избрания файл. Ако потребителят не е избрал един файл, метод GetStartPosition връща стойност NULL. Стойността, получена чрез този метод трябва да бъде написана в временна променлива тип позиция и да премине препратка към него GetNextPathName метод. метод GetNextPathName връща пълния път на първата от избраните файлове в диалоговия панел и промените стойността на променливата поз, прехвърлени от връзката. Новата стойност на поз може да се използва за метод следващи покани GetNextPathName и получавате пътеки на всички други избрани файлове. Когато метод GetNextPathName връща имената на всички избрани файлове в променливите поз записани NULL.

Панелите отваряте и записвате Като ключ "ReadOnly". По подразбиране тази preklyuchatel не се показва. Ако трябва да използвате този ключ, трябва да се премахне използването на OFN_HIDEREADONLY флаг.

метод GetReadOnlyPref позволява да се определи позицията на превключвателя "ReadOnly". Ако ключът е включен, метод GetReadOnlyPref връща стойност различна от нула. В противен случай се връща GetReadOnlyPref нула.

4. Избор на шрифта бар (CFontDialog клас)

диалоговия прозорец Font Standard използва за избор на шрифт. Този панел показва списък с шрифтове, инсталирани на вашата система и ви позволява да изберете името на шрифта, стила на шрифта, както и други параметри.

За да контролирате диалоговия панел шрифт в MFC клас библиотека включени CFontDialog клас. Методи от този клас могат да бъдат използвани за да се покаже панел на шрифта и определящи характеристики на шрифта, избрани от потребителя. CFontDialog клас конструктор:

Всички параметри на конструктора са задължителни. Задаване на стандартен панел за избор на шрифта, който работи по подразбиране клас конструктор CFontDialog на, да отговарят на повечето потребители.

LplfInitial параметър е указател към структура LOGFONT който описва логическата шрифт. Ако се използва тази опция, а след това по подразбиране в диалоговия панел ще бъде избран шрифт, шрифт най-подходящ е описано в LOGFONT структура.

параметър DwFlags задава определени флагове, който контролира различните режими на работа панел. Например, CF_EFFECTS флаг позволява на потребителя да създаде подчертан и зачеркнат писма за да се определи цвета на буквите и CF_SCREENFONTS флаг - позволява да се избере само шрифтовете на екрана.

Чрез pdcPrinter параметър може да се предава на строителя на контекста на дисплея на принтера, който ще бъде представен на шрифтовете в Font диалоговия панел. Този параметър се използва, само ако параметър на dwFlags посочено CF_PRINTERFONTS или CF_BOTH знамена.

Чрез параметър pParentWnd да определите основния прозорец за диалоговия панел на шрифта.

методи клас CFontDialog

За да се покаже диалога Font панел предназначен виртуален метод DoModal. Ако потребителят избира шрифт и ако са извършени върху OK, метод DoModal връща ID IDOK, ако потребителят е отменен изборът на шрифт, метод DoModal връща IDCANCEL ID:

В друг клас от методи за определяне характеристиките на шрифта избран от потребителя.

метод GetCurrentFont ви позволява незабавно да се идентифицират всички характеристики на избрания шрифт, да ги записвате в структурата на LOGFONT.

Останалата част от методите на класа ви позволи да се определи само на индивидуалните характеристики на избрания шрифт:

  • GetFaceName - Връща името на избрания шрифт
  • GetStyleName - Връща името на избрания шрифт стил
  • GetSize - Връща размера на избрания шрифт
  • GetColor - Връща цвета на избрания шрифт
  • GetWeight - Връща плътността на избрания шрифт
  • IsStrikeOut - Определя дали шрифтът избрани пресече линия
  • IsUnderline - Определя дали шрифта избран подчертават
  • IsBold - Определя дали шрифтът е смела
  • IsItalic - Определя дали шрифтът е курсив

5. О панел за отпечатване на документи (CPrintDialog клас)

CPrintDialog клас може да се използва за създаване на два вида диалогови панели, предназначени за отпечатване на документи и избора на документни формати. Освен CPrintDialog клас може да се използва CPageSetupDialog клас. Тя ви позволява да създадете диалогов прозорец за избор на формата на документа, който е малко по-различен вид.

В приложения, приготвени с използване на MFC AppWizard и изградени по модела на вид документ, по подразбиране е построен, за да изведете редактира документа за печат.

От менюто на приложението File съдържа три линии (Print, Print Preview и Print Setup), които уреждат процеса на отпечатване на документите, изготвени в заявлението. За да отпечатате документ, просто изберете от Print реда от менюто File. покаже диалоговия прозорец Печат на екрана се появи. Възможно е да изберете устройство за печат за отпечатване на документи (Група Име) показват, ще се отпечата на целия документ или част от него (Print диапазон група), както и как ще бъдат отпечатани на много копия на документа (копия група). Можете също да конфигурирате различни характеристики на устройството за печат, ако щракнете върху бутона Свойства в групата на принтер.

Ако искате да се определи само на устройството печат, както и формата на документа, от менюто File, изберете Printer Setup линия. В групата на принтера, можете да укажете печатащо устройство и да го коригира съответно. Хартия Група определя режима на фуражите за размера на хартията и хартия в принтера. Ориентация група включва само един ключ, който определя ориентацията на хартията. Това отнема вертикално положение за изображение вертикална ориентация на на хартиен носител (режим "портрет") или пейзажна ориентация за хоризонтална izoborazheniya хартия ( "пейзаж" режим).

Ако не е необходимо да извършите конкретна обработка на документ преди печат, че е малко вероятно, че ще трябва да се добави отделен програмен код, отговарящ за процеса на печат. Просто имайте предвид, че процедурата за създаването на панели, свързани с отпечатване на документ, не се различава от създаването на описаните по-горе стандартни диалогови панели.

6. Панел за извършване на търсене и замяна (CFindReplaceDialog клас)

CFindReplaceDialog клас предназначен за управление на диалогови прозорци за намиране и замяна. Намери диалогов прозорец се използва за търсене на известни струни в прилагането на документа и замяна панел позволява замяната на един ред в друга.

Важна разлика от диалоговия прозорец за търсене и замяна диалоговия от другите стандартни панели е, че те са немодални диалогови прозорци. Поради това, процесът на създаване на тези панели значително се различава от процеса на създаване на стандартни панели за имена за избор на цвят, шрифт и софтуер.

Подкрепете проекта - споделете линка, благодаря!