/******************************************************************************* Moduli: kierrot.cpp Tarkoitus: ...... Projekti: Winlin, Cum laude approbatur -harjoitustyö Tekijät: Virpi Kivinen & Tiina Mäkinen Tehty: 1.1.96 Muutettu 1.7.96 Mitä muutettu: + lisättyyt Puutteet: mökki *******************************************************************************/ /**********************************************************************************************/ /* Tänne tullaan kun menusta on valittu Valmiit kuvaukset -Kierto */ /* */ /* static LONG WM_command_idc_ok(tMSGParam *msg) */ /* -aliohjelmassa luetaan Kierto-dialogista haluttu kiertokulma, sekä akseli, jonka suh- */ /* teen kierretään. Mikäli dialogissa ei ole valittu ruutua Matriisiin sijoitus, ikkunan */ /* matriisi kerrotaan matriisilla R (yhdistetty kuvaus). */ /* Kuva ikkunalle lähetetään viesti KUVAA. */ /* */ /* static LONG WM_InitDialog(tMSGParam *msg) */ /* -jos matriisin dimensio on kaksi, annetaan tehdä kiertoja vain z-akselin suhteen. */ /* (Pelkkä taso.) */ /**********************************************************************************************/ #include #include #include #include "tabhand.h" #include "mdialog.h" #include "winlin.h" #include "kahvat.h" static LONG WM_command_idc_ok(tMSGParam *msg) { int akseli; char s[10]; double kulma; cMatrix R; GetDlgItemText(msg->hWnd,IDC_KULMA,s,sizeof(s)); if (sscanf(s,"%lf",&kulma)!=1) { DestroyDialog(msg->hWnd,TRUE); return 0; } if ( IsDlgButtonChecked(msg->hWnd,IDC_RADIOX) ) akseli=1; else if ( IsDlgButtonChecked(msg->hWnd,IDC_RADIOY) ) akseli=2; else akseli=3; R.kierto(kulma,akseli); if ( !IsDlgButtonChecked(msg->hWnd,IDC_CHECKBOX_SIJOITA)) // kerrotaanko kerro_matriisi(R); aseta_matriisi(R,W.Hwndt[1]); LAHETA_VIESTI(ikkunat.etsi_kahva(1),KUVAA); DestroyDialog(msg->hWnd,TRUE); return 0; } static LONG WM_InitDialog(tMSGParam *msg) { if (W.dimensio==2){ HWND h; h=GetDlgItem(msg->hWnd,IDC_RADIOX); EnableWindow(h,SW_HIDE); h=GetDlgItem(msg->hWnd,IDC_RADIOY); EnableWindow(h,SW_HIDE); (void)Button_SetCheck(GetDlgItem(msg->hWnd,IDC_RADIOZ),TRUE); return 0; } (void)Button_SetCheck(GetDlgItem(msg->hWnd,IDC_RADIOX),TRUE); return 0; } static LONG WM_command_idc_peruuta(tMSGParam *msg) { DestroyDialog(msg->hWnd,TRUE); return 0; } tMSGEntry KTbl[] = { { WM_INITDIALOG, DoC , DoC, WM_InitDialog }, { WM_COMMAND , IDCANCEL , DoC, WM_command_idc_peruuta}, { WM_COMMAND , IDC_OK , DoC, WM_command_idc_ok }, { WM_COMMAND , IDC_PERUUTA, DoC, WM_command_idc_peruuta}, { 0 } };