Работа с текстови контроли.
Създаване на Windows GUI диалогово приложение, показващо информация за системата.
В това упражнение ще разгледаме спецификата на контролите за работа с текст в едно Windows приложение. Използвайки наученото, ще създадете програма, която дава информация за наличната и използваната памет на съответната система.
Една от най-честите употреби на статичния текст е като етикет за EditBox. Можем да зададем мнемоничен символ в статичния текст, което ще позволи фокусиране на дадения EditBox чрез клавиатурата. Мнемоничният символ е символ, който натиснат в комбинация с Alt фокусира съответния контрол. Задаването на мнемоничен символ става като поставим знака амперсанд '&' пред символа, който желаем да бъде мнемоничен. Статичния текст не може да взаимодейства с потребителя, следователно той не може и да получава фокус. Така, ако асоциираме мнемоничен символ със статичен текст, то фокуса ще се прехвърли върху контрола следващ непосредствено.

Контролите са :
Действието, което ще изпълнява бутона Get Text е взимане на въведеното име в първия EditBox преобръщане на реда на буквите и изписването им обратно в контрола. За целта е необходимо да се асоциира променлива с IDC_EDIT_NAME. Стъпките са:
Обработването на събитието натискане на бутон Get Text ше се извършва от функцията OnGetText, която създаваме отново с помощта на ClassWizard : избираме таба Message Maps, селектираме IDC_GET_TEXT от списъка с контроли, а във списъка със събития (Messages) маркираме BN_CLICKED. Натискаме Add Function за да се създаде функцията, а чрез Edit Code се отваря редактора на код за новосъздадената функция.
Кода, който трябва да въведем в тялото й е следният:
}
Събития свързани с EditBox контрол:
Събитията, наричани още съобщения (messages), които се прихващат от Windows за едно поле с текст са :
EN_CHANGE - изпраща се, когато текста в контрола е променен след като е показан.
EN_UPDATE - изпраща се, когато текста в контрола е променен преди да е показан.
EN_SETFOCUS - когато контрола получава фокус.
EN_KILLFOCUS - когато контрола губи фокус.
EN_MAXTEXT - когато текста надхвърля размера на полето и е бил отрязан.
EN_HSCROLL - когато е натисната хоризонталната скролираща лента (за многоредови полета).
EN_VSCROLL - когато е натисната вертикалната скролираща лента (за многоредови полета).
EN_ERRSPACE - изпраща се, когато не може да се задели памет за дадения контрол.
За показания по-горе пример 1, ще използваме съобщението EN_CHANGE, така че, когато потребителя въвежда текст във полето за Nick Name, този текст едновременно да се изписва и в съседното поле. За целта ще е необходимо да създадем функция, която да обработва съобщението EN_CHANGE за контрола IDC_EDIT_NICK. В тялото й добавяме следния код: