Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Visual C++. MFC
Урок 29. Изменяем внешний вид страницы свойств

Страницы со вкладками, которые мы строим указанными в прошлых уроках способами, имеют внешний вид по умолчанию. В частности, у них присутствует кнопка Apply и нет кнопки Help. Если кнопка Apply вам не нужна, то избавится от нее можно добавлением следующей строчки перед показом нашего окна:

void CProppageView::OnDialogDialog()
 
 {
 
     // TODO: Add your command handler code here
 
     CDlg dlg("Диалог с вкладками");
 
     dlg.m_psh.dwFlags|= PSH_NOAPPLYNOW;
 
     dlg.DoModal();
 
 }

Здесь мы используем структуру m_psh класса CProperySheet.

После запуска программы кнопки Apply уже не будет:

Окно с вкладками без кнопки Apply

Использую ту же структуру можно добавить и кнопку Help:

    ...
 
     dlg.m_psh.dwFlags|= PSH_HASHELP;
 
     ...

После этого появится кнопка Help:

Окно с вкладками с кнопкой Help

Обратите внимание, что кнопка Help серая. Дело в том, что нам еще необходимо установить аналогичный параметр для кнопки Help для вкладок нашего диалогового окна со вкладками. Делаем это, например, так:

void CProppageView::OnDialogDialog()
 
 {
 
     // TODO: Add your command handler code here
 
     CDlg dlg("Диалог с вкладками");
 
     dlg.m_psh.dwFlags|= PSH_HASHELP;
 
     dlg.m_op1.m_psp.dwFlags|= PSP_HASHELP;
 
     dlg.DoModal();
 
 }

Теперь после запуска кнопка Help будет тоже активна, причем только для первой вкладки нашего диалогового окна:

Окно с вкладками с активной кнопкой Help

Если же мы перейдем на вторую вкладку, то кнопка Help будет серая. В общем-то, ничего удивительного в этом нет - ведь мы добавили строчку dlg.m_op1.m_psp.dwFlags|= PSP_HASHELP; только для первой вкладки m_op1.

Еще одна вещь, которая может пригодиться - это задание начальной активной страницы свойств. По умолчанию активна первая страница. Если хотим, чтобы изначально была активна другая, то пишем что-то вроде

    ...
 
     dlg.m_psh.nStartPage = 1;
 
     dlg.DoModal();
 
     ...

Теперь при запуске будет активна другая страница (помните, что нумерация идет с нуля):

Окно с вкладками с активной второй страницей

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS