if-Abfrage in OnPaint
-
In der Funktion OnPaint bei einer dialogfeldbasierten Anwendung, die mit dem MFC-Anwendungs-Assistenten erstellt wurde, befindet sich folgender Code:
if (IsIconic()) { CPaintDC dc(this); SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); 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; dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); }
Was muß passieren, damit die Bedingung if (IsIconic()) eintritt? Ich habe gelesen, daß das was mit dem Minimieren zu tun hat, aber ich habe den Debug-Modus gestartet und in die Bedingung einen Breakpoint gesetzt. Trotzdem konnte ich machen, was ich wollte. Das Programm hat immer den else-Zweig gewählt.
Was muß ich also tun, damit er mal in die if-Anweisungen reingeht?
-
Hab ich mich auch schon gefragt, und dann hab ich heute endlich dannach gesucht und das gefunden: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_0gxj.asp
-
hmmm, aber auch wenn man das class icon auf NULL setzt, liefert IsIconic nie TRUE zurück.