04. november 2002 - 14:36Der er
8 kommentarer og 1 løsning
Lidt WinAPI...
Heysa.
Det jeg skal lave, er noget der udregner RGB-farveværdien til OpenGL. Dette gøres ved at dividere med 255. F.eks.: 155 / 255.
Nu har jeg lavet 6 edit-felter. I de 3 første, skal man indtaste den rigtige RGB-værdi - i de 3 sidste viser den resultatet for hver enkelt. Dvs. at hvis jeg skrev 127,5 (halvdelen af 255). så ville den skrive 0.5 i felt 4.
Jeg bruger MSVC++ 6.0, og værdien skal være float, og den skal kun vise de første 4 cifre i de 3 sidste edit-felte. Nogen der kan hjælpe mig? Takker ;-)
Okay, jeg har sendt sourcen. For en god ordens skyld, vil jeg lige vise koden her...
Til dialogens message map har jeg tilføjet: ON_CONTROL_RANGE(EN_CHANGE, IDC_R, IDC_B, OnChange)
Det bevirker at funktionen OnChange kaldes når en af de 3 edit-felters indhold ændres (EN_CHANGE). De er defineret lige efter hinanden i resource-filen med navnene IDC_R, IDC_G og IDC_B.
I headerfilen er funktionen erklæret sådan: afx_msg void OnChange(UINT nID);
Implementationen af OnChange ser således ud: void CRGBNormalizeDlg::OnChange(UINT nID) { CString csNumber; GetDlgItem(nID)->GetWindowText(csNumber); // Get the text for the edit that changed csNumber.Replace(',', '.'); // So that we can use both '.' and ',' as decimal seperator double dNormalized = atof(csNumber) / 255.0; // Calculate the normalized coler value csNumber.Format("%.3f", dNormalized); // Format the output with 3 decimals GetDlgItem(nID+3)->SetWindowText(csNumber); // Set the text... }
Ja det ved jeg godt :-) Det er pga. at jeg ikke har sat PHP-siden ind, som den mangler!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.