Wyciągnąć właściciela menu i komunikat WM_DRAWITEM

Zawsze, gdy element musi być narysowana (na przykład w przypadku, gdy po raz pierwszy zostanie wyświetlona lub gdy użytkownik wybierze on), system wysyła komunikat WM_DRAWITEM procedurze okno menu właściciela okna. Ta wiadomość zawiera wskaźnik do struktury DRAWITEMSTRUCT , który zawiera informacje o elemencie, łącznie z danymi elementu, że aplikacja może zostały przypisane do niego. Ponadto DRAWITEMSTRUCT zawiera flagi wskazujące stan elementu (np. czy jest wyszarzone lub zaznaczone) jak również prostokąta obwiedni i kontekstu urządzenia, że aplikacja używa do rysowania elementu.

Aplikacja musi wykonać następujące czynności podczas przetwarzania wiadomości WM_DRAWITEM:

  1. Określ typ rysunku, który jest niezbędny. Aby to zrobić, sprawdź element itemAction struktury DRAWITEMSTRUCT.
  2. Narysuj element menu odpowiednio za pomocą obwiedni kontekstu prostokąt i urządzenia uzyskanych od struktury DRAWITEMSTRUCT . Aplikacja powinna nakreślić tylko wewnątrz prostokąta obwiedni. Ze względów wydajności systemu nie klipu fragmenty obrazu, które wydobywa się poza prostokątem.
  3. Przywracanie wszystkich obiektów GDI wybranych do kontekstu urządzenia elementu menu.

Jeśli użytkownik wybierze element menu, system ustawia członek itemAction struktury DRAWITEMSTRUCT do wartości ODA_SELECT i ustawia wartość ODS_SELECTED w elemencie itemState . Jest to sygnalizacji aplikacji do rysowania elementu menu, aby wskazać, że jest zaznaczony.

Index