Autor Wątek: Rysowanie po GDI obok zakładek  (Przeczytany 1486 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline kwiateusz

Rysowanie po GDI obok zakładek
« dnia: Styczeń 31, 2011, 00:18:05 am »
Mam taki maly problemik, chce sobie narysować ikonke obok zakładek (jak zrobić ją klikalną będe meczyć potem) i o ile udało mi sie ją narysować, o tyle zakładki przestały to czynić... Co widać na screenie z załącznika. Kod jest ściągnięty z manuala (bo to mój pierwszy raz z rysowaniem) i nie wiem co może być nie tak...


Oto sprawca zamieszania, gwoli wyjaśnienia WM_PAINT łapie z subclassowanego okna rozmowy, a bitmape mam z WTW_GRAPH_GET_IMAGE z flagą WTW_GRAPH_FLAG_GENERATE_HBITMAP

		case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdcKontekst = BeginPaint(hwnd, &ps);

RECT rc;
GetWindowRect(hwnd, &rc);

HDC hdcPamiec = CreateCompatibleDC(hdcKontekst);
HBITMAP hbmpStara = (HBITMAP)SelectObject(hdcPamiec, hbmpButton);

BITMAP Bitmapa;
GetObject(hbmpButton, sizeof(BITMAP), &Bitmapa);

BitBlt(hdcKontekst, rc.right-rc.left-32, 0, Bitmapa.bmWidth, Bitmapa.bmHeight, hdcPamiec, 0, 0, SRCCOPY);
SelectObject(hdcPamiec, hbmpStara);
DeleteDC(hdcPamiec);
EndPaint(hwnd,&ps);
break;
}

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Rysowanie po GDI obok zakładek
« Odpowiedź #1 dnia: Styczeń 31, 2011, 11:27:20 am »
Gdzie wywołujesz poprzednią procedurę obsługi okna? BeginPaint i EndPaint robi się chyba tylko raz (i już wywoływane jest w tej poprzedniej procedurze obsługi), powinieneś użyć GetDC i ReleaseDC. Zresztą po co bawić się w rysowanie, nie prościej stworzyć BUTTON z obrazkiem znajdujący się nad listą? Takie ręczne rysowanie jest dosyć wolne...

Offline kwiateusz

Odp: Rysowanie po GDI obok zakładek
« Odpowiedź #2 dnia: Styczeń 31, 2011, 11:45:21 am »
mam poniżej zwracanie do domyślnego procesu obsługi okna, no próbowałem z buttonem tylko ni w ząb nie udało mi sie usunąc jego tła, tak samo ze staticiem... acz coś mi adrian wynalazł do statica to spróbuje

jak to nie wypali to spróbuje z GetDC

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Rysowanie po GDI obok zakładek
« Odpowiedź #3 dnia: Styczeń 31, 2011, 14:48:17 pm »
Dodaj clipping do oryginalnego DC przed tym jak wklelisz doń dane z bufora?