whizzle Geschrieben 20. April 2001 Geschrieben 20. April 2001 Hallo Zusammen! Kann mir jemand sagen, warum bei mir folgendes Codefragment unter Win2000 nicht funktioniert? __________________________________________ // Deklaration der Hauptfensterklasse class CMainWindow : public CFrameWnd{ ... protected: CPalette m_Palette; ... }; // Implementerierung der Hauptfensterklasse int CMainWindow::OnCreate(LPCRTEATESTRUCT lpcs){ ... // Paletteneintrag erstellen LOGPALETTE lp; lp.palVersion = 0x300; lp.palNumEntries = 1; lp.palEntry[0].peRed = lp.palEntry[0].peGreen = lp.palEntry[0].peBlue = 0; // Eintrag setzen m_Palette.CreatePalette(&lp); // Timer setzen SetTimer(...); ... } BOOL CMainWnd::OnEraseBkgnd(CDC* pDC) { // Gesamten Clientbereich fluten CRect rcClient; GetClientRect(&rcClient); // Eigene Palette durchsetzen CPalette* pOldPalette = pDC->SelectPalette(&m_Palette, FALSE); pDC->RealizePalette(); // Zeichnen CBrush brush; Brush.CreateSolidBrush(PALETTEINDEX(0)); CBrush* pOldBrush = pDC->SelectObject(&brush); pDC->FillRect(&rcClient, &brush); // CDC zurücksetzen pDC->SelectObject(pOldBrush); pDC->SelectPalette(pOldPalette); return TRUE; } void CMainWindow::OnTimer() { PALETTEENTRY pe; // Paletteeintrag holen m_Palette.GetPaletteEntries(0, 1, &pe); // verändern pe.peRed++; // zurückschreiben m_Palette.AnimatePalette(0, 1, &pe); } ___________________________________________ Auf meiner W98-Maschine läuft die App ohne Beanstandungen. Unter W98 macht wie es scheint die Funktion "AnimatePalette()" Probleme.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden