Вход/Регистрация
Интернет-журнал "Домашняя лаборатория", 2007 №1
вернуться

Журнал «Домашняя лаборатория»

Шрифт:

Теперь рассмотрим все пункты по порядку.

• В объекте Dialog Box вы задаете следующие данные:

Caption — название диалогового окна.

Font — здесь вы установили шрифт — System и его размер 10

• Static Text — это элемент текста, он вставляется как обычный элемент управления, но не выполняет никаких функций, так как служит для показа текста, который вы зададите в Captions. Так же мы задали некоторые графические установки для статистического текста — это Client Edge и Static Edge. Поздравляю, вы закончили визуальное проектирование диалоговой панели!

Связывание событий с элементами управления

Связывание кода с событием BN_CLICKED кнопки Exit

При нажатии на кнопку Exit программа Draw.Exe завершится.

• Чтобы связать код с событием BN_CLICKED кнопки EXIT, выполните следующие действия:

• Выберете ClassWizard в меню View

• Выберете закладку Message Maps в панели ClassWizard

• Используйте диалоговую панель ClassWizard для выбора следующего события:

Class Name: CDrawDIg

Object ID: IDC_EXIT_BUTTON

Messages: BN_CLICKED

• Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку ОК.

• Сейчас ваша панель MFC ClassWizard должна будет выглядеть так:

• Нажмите кнопку Edit Code и напишите следующий код в функции OnExitButton:

void CDrawDlg::OnExitButton

{

// TODO: Add your control notification handler code here

////////Мой код начинается здесь///////////

OnOK;

////////Мой код заканчивается здесь///////////

}

• Функция ОnОК, которую вы ввели завершает программу, при нажатии на кнопку Exit.

Связывание кода с событием WM_MOUSEMOVE диалоговой панели

Сейчас мы свяжем код с событием WM_MOUSEMOVE, которое будет автоматически выполняться при передвижении мыши.

• Чтобы связать код с событием WM_MOUSEMOVE диалоговой панели, выполните следующие действия:

• Выберете ClassWizard в меню View

• Выберете закладку Message Maps в панели ClassWizard

• Используйте диалоговую панель ClassWizard для выбора следующего события:

Class Name: CDrawDIg

Object ID: CDrawDIg

Messages: WM_MOUSEMOVE

• Щелкните на кнопку Add Fucntion.

Нажмите кнопку Edit Code и напишите следующий код в функции OnMouseMove:

void CDrawDlg::OnMouseMove(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

////////Мой код начинается здесь///////////

if((nFlags 8l MK_LBUTTON)==MK_LBUTTON)

{

CCIientDC dc(this);

dc.SetPixel(point.x, point.y, RGB(0,0,0));

}

//конец структуры IF

////////Мой код заканчивается здесь///////////

///…

• Код который вы ввели содержит единственный оператор IF:

• Оператор IF содержит в себе функции, которые будут выполняться, если условие оператора IF верно. Условие таково, если левая кнопка мыши нажата и произошло перемещение, то функции внутри оператора IF выполняются.

• Функция OnMouseMove выполняется при любом передвижении мыши, ее параметр nFlags показывает была ли нажата какая-нибудь клавиша клавиатуры(типа ALT или Shift) и кнопка мыши. Операция & проверяет прижата ли левая кнопка мыши при ее перемещении. Если это так, то выполняется код ниже оператора IF.

• Код в блоке оператора IF CCIientDC dc(this); создает объект контексного устройства, с помощью него вы сможете рисовать, его можно назвать воображаемым экраном в памяти компьютера. Научно говоря, dc(this) — это экземпляр класса CCIientDC с параметром конструктора this, с помощью экземпляра класса вы можете обращаться к функциям этого класса.

• Следующий оператор, который вы напечатали рисует точку в заданном месте (место щелчка мыши), используя параметры point.x и point.y, которые ему передает функция OnMouseMove, и заданного цвета, с помощью функции RGB;.

  • Читать дальше
  • 1
  • ...
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: