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

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


static control

Default static

{ return my app().Run{); }

После запуска программы на выполнение на экране появится окно, показанное на рис. 9.31. Если нажать левую кнопку манипулятора мышь , то рабочая область окна очистится. При нажатии правой кнопки мани- Это окно появится

пулятора на экране появляется ° 7ь,Г ГиГ слово Default. В программе использованы три новые функции, которые являются компонентами класса TStatic. Они имеют следующие описания:

inline void ClearQ;

inline int GetText(char far* str, int maxChars);-inline void SetText(const char far* str);

где str - указатель на строку, maxChars - максимальная длина строки. Первая функция удаляет статический текст с экрана. Вторая функция запоминает статический текст в строке str (максимальная длина текста равна maxChars) и возвращает число действительно сохраненных символов. Третья функция выводит статический текст, на который указывает str.

9.5.5. Редактирование текста (edit text control)

Редактируемый текст, в противоположность статическому тексту, может быть легко и быстро изменен. Это, в частности, позволяет создавать текстовые редакторы. Редактирование поддерживается объектами класса TEdit, который наследуется из класса TStatic. Рассмотрим простую программу. #include <owl\applicat.h> #include <owl\framewin.h> class my app : public TApplication { public:

my app() : TApplication() { } protected:

virtual void InitMainWindow(void); }; class my win : public TWindow { public:



my win(); protected:

TEdit* my edit;

void EvLButtonDown (UiNTJPoint&); void EvRButtonDown (UINT,TPoint&); DECLARE RESPONSE TABLE{my win); }; DEFINE RESP0NSE TABLE1(my win,TWindow) EV WM LBUTTONDOWN, EV WM RBUTTONDOWN, END RESPONSE TABLE; my win::my win () : TWindow(0,0,0)

{ my edit = new TEdit (this,-1, ,20,20,200,200,500,TRUE); }

void my win :: EvLButtonDown (UINT,TPoint&)

{ my edit->DeleteLine(-1); }

void my wrn :: EvRButtonDown (UINT,TPoint&)

{ my edit->Clear{); }

void my app::lnitMainWindow(void)

{SetMainWindow(new TFrameWindow(0, TEdit Class ,new

my win)); }

int OwlMain(int, char**)

{ return my app().Run{); }

В программе используется следующий конструктор класса TEdit:

TEdit(TWindow* parent, int id,

const char far *text, int X, int y, int w, int h,

UINT textLen,

BOOL multiline = FALSE,

TModule* module = 0); Bee параметры этого конструктора, за исключением multiline, уже рассматривались ранее. Параметр multiline задает один из двух возможных стилей текста: однострочный текст (значение



FALSE) и многострочный текст (значение TRUE). Многострочный текст задается в окне с фреймами горизонтального и вертикального сканирования или скроллинга (scroll bar). Если размер текстового буфера (textLen) задан равным О или 1, то это означает неограниченный размер . В противном случае размер буфера равен значению textLen-1.

В программе использована новая функция, имеющая следующее описание:

BOOL DeleteLine{int LineNumber);

Здесь LineNumber - номер строки (линии). Функция удаляет текст при многострочном редактировании в строке, заданной значением LineNumber. Если LineNumber = -1, то функция удаляет текущую строку, выбранную, например, с помощью манипулятора мышь . При успешном завершении она возвращает значение TRUE.

Рис. 9.32 иллюстрирует основные действия приведенной программы.

Рассмотрим еще один пример.

#include <owl\applicat.h>

#include <owl\framewin.h>

#include <owl\edit.h>

const int UPDATE W1ND0W = 100;

#define EDITJD 101

class my app : public TApplication

{ public:

my app() : TApplication() { } protected:

virtual void InitMainWindow(void); }; class my edit : public TEdit { public:

my edit(TWindow* parent, int ID,

const char far* text, int x, int y, int w, int h, UINT textLen = 500, BOOL multiline = TRUE, TModule* module = 0 )



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

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