Программирование >>  Программирование на языке c++ 

1 ... 131 132 133 [ 134 ] 135 136 137 ... 159


Мыть


Нажатие правой кнопки

Вызов функции EvLBullonDown myedit -:\Рс1е1еЦпе(-1):


Выюв функции E\RButlonDowTi my edU ->С1еаг();

Удаление

текмдей линии, если левая кнопка

нажата в этой области

TEdil Class

йцукенпнниц! 12345 олд ji4CMmb6ro-<- фывапролджэ


Эта функция наследуется из класса TStatic

Удаление всего текста при нажатии правой кнопки в этой области

Выделение текущей линии (перемещение -курсора на Л1тию и нажаше левоГ! кнопки мыши )

Тсксг, введенный с клавиаг>ры

nepcMenteime гексз а вверх-вни i и вправо-влево

Рис. 9.32. Пример работы с объектом класса TEdit

: TEdit(parent,ID,text,x,y,w,h,textLen,multiline,module) {} protected:

void EvLButtonDown (UINT modKeys,TPoint& point);

void EvRButtonDown (UINT modKeys,TPoint& point);

void EvKeyDown(UiNT key, UINT repeatCount, UINT flags);

DECLARE RESPONSE TABLE(my edit); }; DEFINE RESP0NSE TABLE1(my edit,TEdit) EV WM LBUTTONDOWN, EV WM RBUTTONDOWN,



EV WM KEYDOWN, END RESPONSE TABLE;

void my edit :: EvLButtonDown (UINT modKeys,TPoint& point)

{ TEdit::EvLButtonDown(modKeys, point); не следует

забывать про эту строку I Parent->SendNotification(Attr.ld, UPDATE WINDOW,

HWindow); }

void my edit :: EvRButtonDown (UINT modKeys,TPoint& point) { TEdit::EvRButtonDown(modKeys, point); не следует

забывать про эту строку !

Cut();

Parent->SendNotification(Attr.ld, UPDATE WINDOW,

HWindow); }

void my edit::EvKeyDown(UINT key, UINT repeatCount, UINT flags) { TEdit::EvKeyDown(key, repeatCount, flags); не следует

забывать про эту строку ! Parent->SendNotification(Attr.ld, UPDATE WINDOW,

HWindow); }

class my frame : public TFrameWindow { public:

my frame(const char* title);

void UpdateO; private:

my edit* edit;

TStatic *Number o! Lines, *Current Line Number, *Characters in Line, *Fi rstVisi bleLi neText; DECLARE RESPONSE TABLE(my frame); }; DEFINE RESP0NSE TABLE1(my frame, TFrameWindow)

EV CHILD NOTIFY(EDITJD, UPDATE WINDOW, Update), END RESPONSE TABLE; my frame::my frame{const char* title)

: TFrameWindow(0, title), TWindow(0, title)

edit = new my edit (this,EDIT ID, ,20,20,200,200,500,TRUE);



Number of Lines = new Tstatic(this,-1,

Number of lines: ,300,80,250,25,22); Current Line Number = new TStatic{this,-1,

Current line number: , 300,120,250,25,30); Characters in Line = new TStatic(this,-1,

Characters in line: ,300,160,250,25,30); }; void my frame::Update()

{ char str[3],str1[]= Number of lines: ,str2[]=

Current line number: , str3[] = Characters in line: ; UINT start, end; Установка числа линий в поле - Number of lines (см. рис. 9.33)

itoa(edit->GetNumLines(),str,10); strcat(str1,str);

Number of Lines->SetText(str1);

Установка номера текущей линии - Current line number (рис. 9.33)

edit->GetSelection(start, end);

itoa(edit->GetLineFromPos(end),str,10);

strcat(str2,str);

Current Line Number->SetText(str2); Установка числа символов в линии - Characters in line (рис. 9.33)

itoa(edit->GetLineLength(edit->GetLineFromPos(end)),str,10);

strcat(str3,str);

Characters in Line->SetText(str3); } void my app::lnitMainWindow(void) { SetMainWindow(new my frame( TEdit Class )); } int OwlMain(int, char**) { return my app().Run(); }

После запуска программы па выполпепие па экране появится окно, показанное на рис. 9.33. В рабочей области экрана будут выведены три дополнительные строки. В маленькие окна после этих строк выводится следующая информация:

Number of lines - число линий с текстом в окне редактирования;



1 ... 131 132 133 [ 134 ] 135 136 137 ... 159

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика