Archiv verlassen und diese Seite im Standarddesign anzeigen : Schriftfarbe
Frozenice
25.08.2002, 13:35
ok, folgendes problem:
(vc++6,mfc)
hab mitm anwendungsassi ne dialogfeldbasierende anwendung erstellt. hab mit SetDialogBkColor farbe auf Schwarz gesetzt.
des main dialogfeld is ok (da hab ich keine schrift). aber im about-dialog gibts Probleme:
die schrift ! (is schwarz -> sieht man nicht)
deshalb meien frage:
wie kann die farbe der schrift (oder generell die schrift) im dialogfeld ändern ???
thx für eure antworten, schon mal im voraus :)
Format C:
25.08.2002, 16:54
Wie wird die Schrift gesetzt mit DrawText oder TextOut oder ist es ein Statisches TextFeld ?
Ich würde mal sagen es ist ein Statisches Text Feld
Ich würde es so machen:
Mit SetTextColor die Text Farbe setzten und dann mit DrawText oder TextOut den Text reinschreiben
Frozenice
25.08.2002, 18:27
ja hmm... ok,
mein eigentliches problem:
Wie bekomme ich einen DC vom Dialogfeld, damit ich dann SetTextColor, oder solche Sachen anwenden kann ??
Felix Kaiser
25.08.2002, 18:50
GetWindowDC? Musst aber wenn du fertig bist das DC Handle wieder freigeben. ReleaseDC wars glaube, o.ä.
Frozenice
25.08.2002, 19:20
*damn*
gar net so einfach, dass erklären :(
ok, jetzt aber:
An welcher Stelle im Code muss ich denn GetDC (oder was auch immer) einsetzen und wie (Codebeispiel !?).
Habs mit CAboutDlg::GetDC und so weiter probiert. Ging nich :confused:
*aufantworthoff*
Format C:
25.08.2002, 19:27
hdc = GetDC(hwnd); ?
bla bla
ReleaseDC(hwnd, hdc);
obs bei MFC geht weis ich leider nicht, ich arbeite nicht mit MFC
Auf jeden Fall sollte der Text beim eintreffen der Nachricht WM_PAINT neu gezeichnet werden
einfaches API Beispiel:
case WM_PAINT:
hdc = BeginDC(hwnd, &ps)
// Text zeichnen
EndPaint(hwnd, &ps);
break;
Frozenice
26.08.2002, 18:16
OK, ich hab jetzt die Lösung:
erstmal mit dem klassen-assi ne benachrichtigungsfunktion für die message WM_PAINT für CAboutDlg (oder welchen Dialog auch immer ihr haben wollt :) ). dann in die Funktion
void CAboutDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Zeichnen,......
// Do not call CDialog::OnPaint() for painting messages
}
FERTIG. Kein BeginPaint, kein EndPaint.
:) :) :)
Diogenes
28.08.2002, 19:12
Original geschrieben von Frozenice
Kein BeginPaint, kein EndPaint.
Kein Wunder: Dialoge und Control Items sind Selbstzeichner. Die brauchen keine Antwort auf wm_Paint.
Nichtsdestotrotz kann man wie gesehen, sich einen DC holen und munter reinzeichnen.
Frozenice
29.08.2002, 14:59
ach... :)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.