/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Farve på en statisk text.
Fra : Henrik


Dato : 18-06-03 14:59

Hej NG,

Hvordan ændre man farven på en (CStatic) text på en dialog ?.

Ja, ja... SetTextColor() men der skal mere til, ikk ?.

På forhånd tak,

Henrik.



 
 
Bertel Brander (19-06-2003)
Kommentar
Fra : Bertel Brander


Dato : 19-06-03 12:04

Henrik wrote:
> Hej NG,
>
> Hvordan ændre man farven på en (CStatic) text på en dialog ?.
>
> Ja, ja... SetTextColor() men der skal mere til, ikk ?.
>

Det kan gøres på mindst to måder:

1. Lav din egen klasse baseret på CStatic, du skal så lave en
OnPaint i denne klasse hvor du kan udskrive teksten som du
ønsker. Det kræver (så vidt jeg ved) at du selv opretter
static'en når dialog boxen starter (OnInitDialog).

2. Du kan lave den text som du ønsker at vise i static'en som
en bitmap (CBitmap) eller en Enhanced Metafile (CMetaFileDC)
og så sætte denne på en almindelig CStatic. Både CBitmap'en
of CMetaFileDC'en kan laves i OnInitDialog.

Jeg kan godt lave et lille eksempel hvis ovenstående ikke er nok.

Du kunne også se om der er noget der kan bruges her:

http://www.codeguru.com/staticctrl/index.shtml

--
Bertel Brander, author of Wain, a free text editor for programmers:
http://home20.inet.tele.dk/midgaard/program.htm


Mogens Hansen (19-06-2003)
Kommentar
Fra : Mogens Hansen


Dato : 19-06-03 15:55


"Henrik" <hla@telenorconnect.com> wrote


> Hvordan ændre man farven på en (CStatic) text på en dialog ?.

Selvom du ikke skriver det, så antager jeg at spørgsmålet drejer sig om MFC
(senere end V4.0) med Microsoft Visual C++ på MS-Windows.

Jeg har egentlig ikke lyst til at fortælle hvordan - det er grimmere end man
bryder sig om!

> Ja, ja... SetTextColor() men der skal mere til, ikk ?.

Ja, en del mere.

Du skal bruge fange WM_CTLCOLORSTATIC og håndtere den.

Enten kan du gøre det fra dialogboksen med ON_WM_CTLCOLOR message-map
macroen, eller kan du lave en specialsering af CStatic og bruge
ON_WM_CTLCOLOR_REFLECT message-map macroen.

Så skal du "bare" skrive message-handler funktionen, og vupti i løbet af
10-50 linier kode i et par filer har du fået sat farven .

Se Microsoft dokumentationen for ovennævnte preprocessor makroer, så skal
det nok lykkes for dig.

Venlig hilsen

Mogens Hansen


PS

I Borland C++Builder med VCL er det:
<C++Builder kode>
Label1->Color = clBlue;
Label1->Font->Color = clYellow;
</C++Builder kode>

I Visual Studio.NET 2003 med WinForm er det
<Visual C++ kode>
label1->BackColor = System::Drawing::Color::Blue;
label1->ForeColor = System::Drawing::Color::Yellow;
</Visual C++ kode>





Henrik (20-06-2003)
Kommentar
Fra : Henrik


Dato : 20-06-03 07:42

Hej 'svar på mit indlæg',

Jeg checkede codeguru -link'et, og der var et godt eksempel på en klasse som
netop håndterede 'alt hvad jeg behøver og lidt til'.

Tak for hjælpen.



"Henrik" <hla@telenorconnect.com> wrote in message
news:bcrkmn$17ft$1@news.cybercity.dk...
> Hej NG,
>
> Hvordan ændre man farven på en (CStatic) text på en dialog ?.
>
> Ja, ja... SetTextColor() men der skal mere til, ikk ?.
>
> På forhånd tak,
>
> Henrik.
>
>



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste