Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 78


TRect rect=GetClientRect();//Получаем рабочую область

rect.Inflate(-2,0);//Сокращаем ее на два пиксела слева и справа

dc.DrawText(texts[contIndex],strlen(texts[contIndex]) , //Выводим


Окна и их оформление                                                                                                       271

rect,DT_WORDBREAK);//соответствующий текст (содержание главы) } /*Функция отклика класса Quest, использующая описание класса Contents*/

void Quest::EvLButtonDown(UINT,TPoint& point){//В ответ на щелчок левой клавиши Contents* contents=new Contents(GetWindowPtr(GetParent()) ,

plainStrings[questIndex],questIndex);//Создаем всплывающее окно с текстом contents->Create();//Создаем и отображаем окно на экране TRect rect;//Вспомогательная переменная

GetWindowRect(rect);//Получаем координаты окна-вопросной строки point+=rect.TopLeft();//Корректируем переменную point

contents->MoveWindow(point.x,point.y,300,80,true);//Перемещаем окно с текстом }

/*Класс главного окна, производный от TframeWindow*/ class MyWindow:public TFrameWindow{ public:

MyWindow(TWindow*parent,char far*title):TFrameWindow(parent,title){}//Конструктор int EvCreate(CREATESTRUCT far&);//Функция отклика на создание окна DECLARE_RESPONSE_TABLE(MyWindow);//Объявляем таблицу откликов

};

/*Функции-члены класса MyWindow*/ DEFINE_RESPONSE_TABLE1(MyWindow,TFrameWindow)

EV_WM_CREATE, END_RESPONSE_TABLE; int MyWindow::EvCreate(CREATESTRUCT  far&){

for(int  i=0;i<5;i++){//В цикле по пяти парам строк

plain[i]=new Plain(this,i);//Создаем объект-окно для номера главы quest[i]=new Quest(this,i);//Создаем объект-окно для названия главы plain[i]->Create();//Создание и показ quest[i]->Create();// окон

plain[i]->MoveWindow(plainPos[i].x,plainPos[i].y,59,19);// Позиционирование окна TClientDC  tdc(*quest[i]);//Преобразование объекта  TWindow в дескриптор окна TSize strSize=tdc.GetTextExtent(questStrings[i],strlen(questStrings[i]) ) ; quest[i]->MoveWindow(questPos[i].x,questPos[i].y,strSize.cx+2,19) ; }




Начало  Назад  Вперед