Зміна стану під час виконання C + + Builder

Тендітній деталлю всієї системи є те, що ми можемо змінювати поведінку елемента меню під час виконання Ми можемо перемикати заданий елемент меню з нормального стану в стан, при якому він буде відображуваним власником і назад, коли захочемо Давайте подивимося, як цього домогтися

Додайте обробник для підпункту Зробити відображеними власником в пункті меню Змінити У цей обробник (названий MakeOwnerDraw1Click) додайте наступний код:

void __fastcall TForm1::MakeOwnerDraw1Click(TObject *Sender)

{

ModifyMenu(MainMenu1-&gtHandle, Ralph1-&gtCommand,

MF_BYCOMMAND | MF_OWNERDRAW,

Ralph1-&gtCommand, 0)

}

Якщо цей код здається вам знайомим, то ви в принципі праві Це той же самий код, який ми використовували раніше для того, щоб зробити елемент відображуваним власником Наступний пункт меню, Зробити нормальним, цікавіший Додайте для нього обробник, назвіть його MakeNormal1Click, і додайте в нього наступний код:

void __fastcall TForm1::MakeNormal1Click(TObject *Sender)

{

ModifyMenu(MainMenu1-&gtHandle, Ralph1-&gtCommand, MF_BYCOMMAND | MF_STRING,

Ralph1-> Command, Ральф)

}

Це більш звичайний для функції API ModifyMenu вигляд Цей виклик функції перевстановить елемент меню Ralph так, що він буде звичайною рядком і встановить текст для нього в «Ральф» Команда для пункту меню залишиться тієї ж самої, оскільки ми передаємо один і той же ідентифікатор команди в старій і новій позиціях Відзначте, що ми передаємо прапор MF_STRING щоб показати, що ми хочемо змінити текст пункту меню так, щоб він був нормальною рядком Якщо ви тепер скомпілюєте і запустіть додаток, вибір цього пункту меню буде змінювати перший пункт меню так, що в ньому буде відображати або кольоровий прямокутник, або рядок тексту («Ральф»)

Ви, напевно, зверніть увагу на те, що перший раз, коли ви обираєте пункт меню Зробити нормальним і потім вибираєте перший пункт меню, текст Ральф відображений більшим, ніж зазвичай, шрифтом Якщо навести на цей пункт (Ральф) курсор, він знову відобразиться нормальним шрифтом Це глюк Windows 95/NT API

От і все, що стосується нашого прикладу і роботи з меню, відображеними їх власником в CBuilder Як ви бачите, робота з ними зовсім не так вже сильно відрізняється від роботи з будь-якими іншими елементами, відображеними їх власником Щасливо помалювати

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*