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

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


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

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



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Visual C++. ATL
Урок 14. Этап разработки и этап выполнения

Наш компонент может вести себя по-разному в зависимости от того, находится он на этапе разработки тестовой программы или на этапе запуска. Типичный пример такого разного поведения - это Timer в Visual Basic 6. Если тестовая форма находится на этапе разработки и программа еще не запущена, то расположенный на форме таймер не работает (т. е. код в обработчие для его события не выполняется), если же запустить программу, то таймер начинает работать и код, написанный для обработки его события, начинает выполняться.

Для выяснения, находится наш компонент на этапе разработки или выаолнения, служит метод GetAmbientUserMode, принимающий по ссылке переменную типа BOOL. Если после вызова этой функции переданный в неее параметр окажется равным TRUE, то контейнер (форма) для нашего компонента находится на этапе выполнения, а если FASLE, то на этапе разработки.

Вот пример кода, показывающий в зависимости от режима, в котором находится компонент, ту или иную надпись (это измененный метод OnDraw, который создается мастером):

    HRESULT OnDraw(ATL_DRAWINFO& di)
 
     {
 
         RECT& rc = *(RECT*)di.prcBounds;
 
         Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
 
 
 
         SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
 
         LPCTSTR pszText;
 
         // Выясняем режим.
 
         BOOL bUserMode;
 
         GetAmbientUserMode(bUserMode);
 
         if(bUserMode)
 
         {
 
             pszText = _T("Run mode");
 
         }
 
         else
 
         {
 
             pszText = _T("Design mode");
 
         }
 
         TextOut(di.hdcDraw,
 
             (rc.left + rc.right) / 2,
 
             (rc.top + rc.bottom) / 2,
 
             pszText,
 
             lstrlen(pszText));
 
 
 
         return S_OK;
 
     }

На этапе разработки тестовой формы надпись в компоненте будет Design mode:

Design mode

А на этапе запуска тестовой формы надпись будет Run mode:

Run mode

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

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




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



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


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