Dialog unabhängig von der Bildschirmauflösung???
-
Schit, hab vergessen die Code-Tags zu setzen, zweiter Versuch:
ASSERT(lpDrawItemStruct != NULL); ASSERT(lpDrawItemStruct->CtlID == ODT_BUTTON); // optional COLORREF colBk; // Hintergrundfarbe COLORREF colTxt; // Textfarbe // ... weitere Attribute für das Zeichnen // hier werden die Attribute gesetzt switch(lpDrawItemStruct->CtlID) { case ID_MYBUTTON1: // hier die entsprechende command-id des Button angeben colBk = RGB(192, 192, 192); colTxt = RGB(255, 0, 0); break; case ID_MYBUTTON2: // hier die entsprechende command-id des Button angeben //... break; case ID_ ... // und so weiter und so fort } // eventuell noch lpDrawItemStruct->itemAction und/oder // lpDrawItemStruct->itemState auswerten // hier kommt jetzt der Code zum Zeichnen CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); ASSERT(pDC != NULL); // Beispiel: Hintergrund zeichnen pDC->FillSolidRect(lpDrawItemStruct->rcItem, colBk); // ... weiteres Zeichenn /* immer wichtig: Rücksetzen der ausgewählten Pens, Brushes, etc. wenn Du also einen ähnlich Aufruf wie pDC->SelectStockObject(BLACK_BRUSH); oder pDC->SelectObject(pMyPen); machst, dann immer folgendes machen: Beim ersten Mal (für jeden Objekttyp, den Du in das DC selektierst: CBrush* pBrushOld = (CBrush*)(pDC->SelectStockObject(BLACK_BRUSH)); CPen* pPenOld = pDC->SelectObject(pMyPen); dann kommen die Funktionsaufrufe zum Zeichnen und ganz zum Schluß: pDC->SelectObject(pBrushOld); pDC->SelectObject(pPenOld); Das gilt für JEDE Veränderung am DC. Hängt damit zusammen, dass sich manche Fenster ein DC teilen und je nicht zurückgesetzte Änderung zu Ausgabefehlern führen kann. Hab ich selbst schon mal erlebt, kann lustig aussehen, aber auch im Nirvana enden. */
-
Thx für die schnelle Antwort.
Werde mich jetzt mal einschliessen und versuchen das Problem in den Griff zu kriegen.
C u
-
Puuh!Hi hi konnte die Tür wieder aufschliessen!
Klappt super deine idee.
Thx
-
na endlich!!!
-
Gut ding braucht weile!!!
Make PEACE not WAR