Hallo,
ich bin nun am nächsten Problem angelangt. Habe einen Timer, der jede Sekunde ein Event auslöst. Das funktioniert auch, ich kann damit eine Variable hochzählen und anzeigen. Nun soll bei jedem Aufruf auch die Grafik neu gezeichnet werden. Das soll in der Funktion OnPaint geschehen, welche durch eine WM_PAINT aufgerufen wird.
Leider passiert das aber nur beim Programmstart, beim minimieren/maximieren und nachdem eine Messagebox angezeigt wird. Aber nicht mit jedem Timer-Event.
Im Timer-Event habe ich
stehen. Dies wird jede Sekunde aufgerufen.
In OnPaint steht das:
An was kann das liegen dass UpdateWindow keine WM_PAINT erzeugt? Die MSDN-Erklärung hilft mir da leider nicht weiter. Das mit den Handles ist mir nicht so ganz klar.
Wäre über jede Hilfe dankar
ich bin nun am nächsten Problem angelangt. Habe einen Timer, der jede Sekunde ein Event auslöst. Das funktioniert auch, ich kann damit eine Variable hochzählen und anzeigen. Nun soll bei jedem Aufruf auch die Grafik neu gezeichnet werden. Das soll in der Funktion OnPaint geschehen, welche durch eine WM_PAINT aufgerufen wird.
Leider passiert das aber nur beim Programmstart, beim minimieren/maximieren und nachdem eine Messagebox angezeigt wird. Aber nicht mit jedem Timer-Event.
Im Timer-Event habe ich
Code:
UpdateWindow();
In OnPaint steht das:
Code:
int MitteX=150, MitteY=150, Radius=125;
COLORREF color1=0x00FFFFFF, color2=0x00000000;
CBrush brush1(color1);
CPen pen2_4(PS_SOLID, 4, color2);
m_zaehler++;
CPaintDC dc(this); // Gerätekontext für Zeichnen
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Symbol in Client-Rechteck zentrieren
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Symbol zeichnen
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
dc.SelectObject(&brush1); //Füllfarbe weiss
dc.SelectObject(&pen2_4); //Pinselfarbe schwarz, Dicke 4
dc.Ellipse(MitteX-Radius,MitteY-Radius,MitteX+Radius,MitteY+Radius); //Grund-Kreis zeichnen
An was kann das liegen dass UpdateWindow keine WM_PAINT erzeugt? Die MSDN-Erklärung hilft mir da leider nicht weiter. Das mit den Handles ist mir nicht so ganz klar.
Wäre über jede Hilfe dankar
