Der er selvfølgelig andre ting der skal tages stilling til, som f.eks. hvis du har flere UpDown controls liggende. I så fald bliver det noget i stil med (MIN_COTROL1 vil så være en enum eller en #define til f.eks. et windows handle eller ID som er tilfældet med en Updown så vidt jeg kan huske):
switch (message) { case UDM_GETPOS: case MIN_CONTROL_1: /* gør sådan */ break; case MIN_CONTROL_2: /* gør sådan */ break; } /* ... */ break; }
UpDown kan kun tælle op/ned på heltal (lParam/wParam er en long og en unsigned int respektivt), men burde understøtter minusværider.
Alt efter hvor præcis dine kommatal skal være, kan du understøtte dem ved at dividere med f.eks. 1000 (præcision på 3 cifre) på indput du får fra UpDown (så tekst vist i editboksen ikke er det faktiske tal fra UpDown, men en beregnet værdi baseret på denne - og det er en ganske normal måde at gøre ting som dette på).
\"An up-down control notifies its parent window when its current position changes by sending it a UDN_DELTAPOS notification message and a WM_VSCROLL or WM_HSCROLL message\".
Du kan altså fange f.eks.UDN_DELTAPOS, og få dine ønskede værdier:
LPNMUPDOWN lp; switch (message) { case UDN_DELTAPOS: lp = lParam; lp->iPos; // værdi for UpDown. ... }
Tusind tak... Pointene er dine, men inden jeg lukker spørgsmålet kan du så lige svare mig på om du kender løsningen på at lægge BÅDE et icon og noget tekst på en BUTTON CONTROL... ???
Hvis ja, så vil jeg oprette et nyt spørgsmål hvori du kan hjælpe mig med det problem...
Så vidt jeg ved, findes der ikke en sådan type knap. Windows har indbyggede tekst og grafik knapper, men ikke en knap som har begge egenskaber på een gang.
Det eneste du kan gøre, så vidt jeg ved, er at lave en static control og selv tegne knappen, inklusiv rammer, tekst, grafik og alt hvad dertil hører. (benytter du MFC, kan du overloade onPaint med din egen routine, men er princippet samme metode).
Ja, du skal oprette en control og så fange WM_DRAWITEM beskeden, hvorefter du så tegner din egen knap.
Det kan gøres sådan: /* ... */ case WM_DRAWITEM: LPDRAWITEMSTRUCT d = (LPDRAWITEMSTRUCT)lParam; FrameRect(d->hDC, &d->rcItem, (HBRUSH)GetStockObject(BLACK_BRUSH)); /* ... */
ID\'en på controllen findes i d->CtlID. Håber det hjælper.
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.