14. januar 2001 - 12:29Der er
11 kommentarer og 1 løsning
Centreret Caption i Form
Hejsa er der nogen der ved hvordan man laver ens caption sådan at den automatisk vises centreret? (jeg ved godt at man bare kan bruge mellemrums tasten indtil den blir centreret - Men er der ikke en funktion eller lignende der kan gøre det automatisk) ? Jeg har ´kun givet 5 points for det burde jo i grunden være let nok ik*?
Slepee>Det skal være Captionen på en Form ikke en Label ;) Blomme>Ja det var nemlig også derfor jeg synes at det ville være lettere hvis man bare kunne centrerer Captionen i stedet for at bruge mellemrums-tasten....
Jeg tror ikke man umiddelbart kan centrere en caption da det er noget Windows styrer. Det jeg tor du skal gøre er at fange WM_NCPAINT og tegne caption selv....
det du skal gøre er at lave en funktion der bliver kørt på form.resize.
den skal tage form.width div 2 - dintekst.width div 2 så får du antal punkter din tekst skal rykkes ind.
ved dintekst.witdth skal du ind og have størrelsen af hver tegn. hehe.
så inden du smider din tekst ind i caption skal funktionen beregne hvor mange mellemrum der skal sættes ind ud fra resultatet.... gad vide om et mellemrum ikke er 1 el. 2 pixels bred ?, selvfølgelig afhængig af fonten.
ingen har sagt det skulle være let. men kan lade sig gøre
Det er ikke måden at gøre det på ... Hvis ma tager en lille tur via MSDN finder mand det følgende :
Remarks The DefWindowProc function paints the window frame.
An application can intercept the WM_NCPAINT message and paint its own custom window frame. The clipping region for a window is always rectangular, even if the shape of the frame is altered.
The wParam value can be passed to GetDCEx as in the following example.
case WM_NCPAINT: { HDC hdc; hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN); // Paint into this DC ReleaseDC(hwnd, hdc); }
Så bruger du blot DrawText til at skrive dine ting med ....
Jeg refererede til mit tidligere svar, om at \"fange\" WM_NCPAINT, og selv tegne NON-CLIENT området. Men husk, at det ikke kun er den blå linie, det er også rammen omkring vinduet der skal tegnes; ellers kommer det nok til at se lidt mærkeligt ud...
wisen >> Det var ikke til dig .. men det kunne du jo ikke vide ... Det var til prodoc, jeg er en anelse træt af han manerer med at oprette spørgsmål for så blot at synke i jorden ....
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.