001
15.06.2004, 23:33 Uhr
mmc20
puss in boots
|
hi, soweit mir das bekannt ist, passiert genau das. OnPaint wird aufgerufen wenn das window verdeckt war.
wie zeichnest du denn?, wird das irgendwo gespeichert (also die punkte/linien) ? oder halt nur in einer "OnMouseButton"-function, wenn nichts gespeichert wird iss klar das das nachher weg ist.
zu dem thema giebts in "Visual C++ in 21 Tagen" (in E-Books) Tag 10 (SDI-Anwendung) ein beispiel, funktioniert dort mit "OnDraw" (das kann man natürlich auch anders lösen, aber für einen anfänger IMHO gut erklärt)
ich würd das so machen:
C++: |
void CDeinDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // Gerätekontext für Zeichnen
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 { // hier jetzt das eigene zeichnen einfügen // // CDialog::OnPaint(); } }
|
|