Henrik wrote:
> Hej,
>
> Jeg ønsker at noget text i dialog titlebar'en skal stå i højre side og noget
> i venstre side
>
> CString strMyString;
> .......
> this->SetWindowText(strMyString);
>
> strMyString er dynamisk medfører at højre margin varierer (og det ser dumt
> ud).
> - kan man gøre dette ?.
>
> - eller :
> Min dialog size er konstant og jeg kender dermed antallet af pixels (width).
> Kan man finde hvad en given CString (med en given font) fylder i pixels, og
> på den måde indsætte/fjerne spaces i Cstring'en indtil det matcher dialogens
> width i pixels ?.
>
Man kan måle en texts længde med GetTextExtentPoint32(), den giver dog
en lidt unøjagtig længde. Det er bedre at prøve at skrive teksten på en
DC og så måle længden der. Kald SetTextAlign() med TA_UPDATECP for at få
den til at flytte position når du skriver text.
Det eneste problem jeg kan se er at finde ud af hvilken font brugeren
har valgt til sin title-bar. Du kan prøve at sende en WM_GETFONT til din
dialog, men jeg er ikke sikker på at det er titlebar'ens font.
/b
--
Bertel Brander, author of Wain, a free text editor for programmers:
http://home20.inet.tele.dk/midgaard/program.htm