Hei,
Olen tekemässä laskinta itselleni ja tarvitsen pariin kysymykseen vastauksen.
1. itoa(luku_las, bufferi, 10) ; <- Miten saan tuon niin, että se ei muuta liukulukua kokonaisluvuksi, vaan pitäisi sen liukulukuna ?
2. Minulla on combobox:ssa kaks vaihtoehtoa "Betoni ja Puu" ja materiaali taulukossa on määritetty niiden kertoimet.
Miten saadaan kysyttä kumpi materiaali on valittu, kun painan "laske" ?
...
static double Materiaalit[2] = {25, 4.4} ;
...
hwndCombo1=CreateWindow("combobox", NULL, WS_CHILD|WS_VISIBLE|CBS_SORT|CBS_DROPDOWNLIST, 140, 140, 100, 80, hwnd, (HMENU) 3, hInstance, NULL); // yhdistelmäruutu
SendMessage(hwndCombo1, CB_ADDSTRING, 0, (LPARAM) "Betoni"); // tekstirivien lisäys yhdistelmäruutuun
SendMessage(hwndCombo1, CB_ADDSTRING, 0, (LPARAM) "Puu");
SendMessage(hwndCombo1, CB_SETCURSEL, 0, 0); // tehdään jokin oletusvalinta
...
if (HIWORD (wParam) == BN_CLICKED) { // napinpainallus aiheuttaa BN_CLICKED-tapahtuman
char bufferi[10], bufferi_lev[10], bufferi_kor[10], bufferi_pak[10] ;
double luku_las ;
if (LOWORD(wParam) == 2 ) { //LOWORD makro purkaa bitit 1-16 wParam:sta
GetWindowText ( hwndEdit1, bufferi_lev, 10 ) ; // Luetaan Edit1 teksti
double luku_lev = atof(bufferi_lev) ; // Muunnetaan se numeroksi
if (luku_lev <= 0 ) MessageBox (hwnd, "Syötä leveys mitta!", "Virhe", MB_OK | MB_SYSTEMMODAL ) ; // Jos muunnos ei onnistunut
GetWindowText ( hwndEdit2, bufferi_kor, 10 ) ; // Luetaan Edit1 teksti
double luku_kor = atof(bufferi_kor) ; // Muunnetaan se numeroksi
if (luku_kor <= 0 ) MessageBox (hwnd, "Syötä korkeus mitta!", "Virhe", MB_OK | MB_SYSTEMMODAL ) ; // Jos muunnos ei onnistunut
GetWindowText ( hwndEdit3, bufferi_pak, 10 ) ; // Luetaan Edit1 teksti
double luku_pak = atof(bufferi_pak) ; // Muunnetaan se numeroksi
if (luku_pak <= 0 ) MessageBox (hwnd, "Syötä Paksuus mitta!", "Virhe", MB_OK | MB_SYSTEMMODAL ) ; // Jos muunnos ei onnistunut
luku_las = double ((luku_lev * luku_kor * luku_pak) * Materiaalit[0]) ;
itoa(luku_las, bufferi, 10) ;
SetWindowText(hwndtxt6, bufferi);
}
}
...1. Ota käyttöön sprintf tai snprintf
Aihe on jo aika vanha, joten et voi enää vastata siihen.