whizzle Geschrieben 20. April 2001 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.