В цикле из 1000 шагов
frequencySliderValue=new TStatic(this,-1,"",250,20,200,25);
frequencyLegend=new TStatic(this,-1,
"1 10,250,85,200,25);
phaseBarValue=new TStatic (this, -1,"", 250,150,200,25);
phaseLegend=new TStatic(this,-1,
"0 32",250,215,200,25);
} void MyWindow::UpdateFrequency(UINT notifyCode){
char str[50];
if(notifyCode==SB_THUMBTRACK||notifyCode==SB_ENDSCROLL) return;
else{
kf=frequencySlider->GetPosition(); wsprintf(str,"Отношение частот = %d",kf); frequencySliderValue->SetText (str);
panel->Invalidate(); }
} void MyWindow::UpdatePhase(UINT){
char str[50];
ph=phaseBar->GetPosition();
wsprintf(str,"Сдвиг фаз = PI/32 * %d",ph);
phaseBarValue->SetText(str);
Окна и их оформление 275
panel->Invalidate(); }
/*3амещающая функция SetupWindow*/
void MyWindow::SetupWindow(){
TWindow::SetupWindow();//Вызываем замещенную функцию SetupWindow
frequencySlider->SetRange(1,10);//Нижний и верхний пределы шкалы
freguencySlider->SetRuler(1,TRUE);//Шаг шкалы и фиксация
frequencySlider->SetPosition(1);//Начальное положение ручки
phaseBar->SetRange(0,32);//Нижний и верхний пределы шкалы
phaseBar->SetPosition(16);//Начальное положение ручки
UpdateFrequency();//
UpdatePhase() ;//
}
/*Функция Paint для окна-панели*/ void Panel::Paint(TDC&dc,bool,TRect&){
for(float i=0;i<2*PI*1000;i++){// В цикле из 1000 шагов float x=sin(i/100)*100;//х-координата текущей точки float y=sin((i/100+PI/32*ph)*kf)*100;//у-координага текущей точки dc.Rectangle(x+110,y+110,x+112,y+112);11Квадратики вместо точек }
}
/*3амещающая функция InitWainWindow*/ void MyApp::InitMainWindow(void){
SetMainWindow(new MyWindow(0,"Программа 29-2"));
} /*Главная функция приложения OwlMain*/
int OwlMain(int,char*[]){
return MyApp{).Run();
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий