Основи на входно изходният интерфейс
| Информационни технологии | 2009-12-04 | 130 сваляния |
14 Основи на входно/изходният интерфейс. Работа с текст инвалидизация, скролиране. Поддържащи класове в MFC среда. Представа за шрифт.
-
Работа с текст.
За да се изведе текст то предварително трябва да са указани неговите характеристики. Това става чрез ползването на съответните полета в DC (Device Context). mapping mode (режим на съответствие) също трябва да се установи. Съответствието между нашите представи и реалните се прави от mapping mode.
case WM_PAINT : hdc =GetDC(hwnd);
hdc=BeginPaint(hwnd, &ps); .
графични обработки; ReleaseDC(hwnd,hdc);
EndPaint(hwnd, &ps);
return 0;
Ето един пример извличащ размера на текущата потребителска област:
static short cxClient, cyClient;
....
case WM_SIZE: cxClient = LOWORD (lParam);
cyClient = HIWORD(lParam);
За скролиране има стандартна ф-я, която ги създава и такава, която указва с едно кликване на колко позиции да се отмести.
-
Работа с текст при MFC поддръжка.
CDC поддържа ред текстови функции:
DrawText текст в правоъгълна област.
TextOut ред на указани координати.
ExtTextOut ред със запълване на правоъгълника с фон и др.
GetTextExtent изчислява ширината на низа в избрания шрифт.
GetTextMetrics връща шрифтови размери.
SetTextAlign, SetTextColor, SetBgColor.
Шрифтът е GDI обект : В MFC той се представлява от Cfont. Най-често се създава с CreateFont() или така:
CFont font;
font.CreatePointFont(120, _T(Times New Roman)); // 12 пункта размер
След като създадете шрифт обекта следва да го изберете за употреба:
CPaintDC(this);
dc.SelectObjec( &font);
dc.SetBkMode(TRANSPARENT);
CString string = _T(Hello));
CRect rect (.);
dc.SetTextColor( RGB(192,192,192));
dc.DrawText( string, &rect, .);
Може да се създаде логически шрифт, чрез него може да се създават тънки настройки на шрифта (градуси на наклона и др.). Но с логически шрифтове не работят всички шрифтове. Bitmap шрифтовете не могат да са логически, а само векторните.
18 Общи контроли в Windows среда. Списъци с изображения, разширен combo box контрол, Rich edit control, progress control, spin и buddy контроли, контроли с картинки, анимационен контрол, контрол календар, контрол за избор дата и час и др.
Общите контроли са 20 и MFC осигурява класове за тях.
Създаване:
#include //съдържа декларациите на контролите
CProgressCtrl wndProgress;
wndProgress.Create( стил, размери в правоъгълник, this, IDC_);
Пример с List box:
ClistBox m_wndList;
m_wndList.Create(WS_.| .., rect, this, IDC, );
m_wndList.InsertString(.);
m_wndList.DeleteString();.
Списъци с изображения -Image List ( tree view, list view, combo box extended)
CImageList il;
il.Create(IDB_BITMAP, 18, );
il.Draw(pDC, индекс, нач.координати, ефекти при чертане);
контрол ComboBoxEx: public CComboBox
CComboBoxEx::SetImageList( & обект CImageList)
CComboBox::InsertItem() //добавя елемент към контрола с указан текст,
Ех разширява функционалността на ComboBox. В примера се използва да се добавят картинки.
Тагове от реферата: скролиране, инваидизия, одният, интерф, ОСНОВИ











