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.