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

коды Shadow Force: Razor Unit

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


menu->CheckMenuItem(CM_SIN,MF_UNCHECKED);//Снять маркер

Invalidate();//Перерисовать окно (без этого графика)

} } /*Функции CmCos(), CmSinX() , CmCosX() имеют аналогичное содержимое*/

void MyWindow::Cm200(){//Устанавливаем 200 точек на 1 k=200; Invalidate();//Перерисовываем

void MyWindow::Cm100(){//Устанавливаем 100 точек на 1

k=100;

Invalidate();//Перерисовываем

] void MyWindow::Cm50(){//Устанавливаем 50 точек на 1

к=50;

Invalidate();//Перерисовываем

} void MyWindow::EvRButtonDown(UINT,TPoint& point){

TRect rect;

GetWindowRect(rect);//Получим текущие координаты главного окна

point+=rect.TopLeft();//Смещаем точку вывода меню

popupMenu.TrackPopupMenu(TPM_LEFTALIGN,point,0,HWindow);//Отобразим

//плавающее меню

}

/*3амещающая функция

InitMainWindow() */ void MyApp::InitMainWindow(){

MyWindow* myWin=new MyWindow(0,"Программа

27-3");

SetMainWindow(myWin);

EnableBWCC();//Разрешаем загрузку и использование BWCC.DLL

]                                                                               '

void MyWindow: :Paint (TDC&dc,bool,TRect&) { ...//Аналогично примеру 27-2, но выводятся 4 графика

} /*Главная функция приложения OwlMain*/

int OwlMain(int,char*[]){

return MyApp().Run();

}

Поскольку содержательные части двух последних примеров совпадают, ниже будут описаны только принципиальные отличия приложения 27-3 от предыдущего.

В классе MyWindow объявляется указатель menu на объект класса TMenu для добавления в меню маркеров, а также объект popupMenu класса TPopupMenu для образования плавающего меню, активизи­руемого щелчком правой клавиши мыши. Объект класса TMenu еще предстоит создать; это удобно вы­полнить в замещенной функции SetupWindow() класса TFrameWindow. Функции с именем SetupWindow входят во многие классы, описывающие различные окна (TWindow, TFrameWindow, TButton, TDialog и -др.); все они замещают исходную виртуальную функцию SetupWindow() класса TWindow и служат для выполнения необходимых для данного класса инициализирующих действий. Замещение функции Set-upWindow() в прикладном классе позволяет добавить к системным инициализирующим действиям соб­ственные. При этом, как правило, в замещающей функции необходимо сначала вызвать замещенную, и лишь затем выполнять прикладную инициализацию. Так и сделано в нашем примере (см. определение функции MyWindow::SetupWindow()).




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