Ustawienie flagi rysowane właściciela

Element menu rysowane właściciel nie można zdefiniować w pliku zasobu definicji aplikacji. Zamiast tego należy utworzyć nowy element menu lub zmodyfikować istniejący za pomocą flagi menu MFT_OWNERDRAW.

Można użyć InsertMenuItem lub SetMenuItemInfo funkcji Określ element menu rysowane przez właściciela. Aby wstawić nowy element menu w określonej pozycji menu lub paska menu, należy użyć InsertMenuItem . Użyj SetMenuItemInfo aby zmienić zawartość menu.

Podczas wywoływania te dwie funkcje, należy podać adres strukturę MENUITEMINFO , dając właściwości nowego elementu menu lub właściwości, które chcesz zmienić istniejący element menu. Stał się elementem właściciel rysowane elementu, określ wartość MIIM_TYPE Państwa fMask i wartość MFT_OWNERDRAW dla członka fType.

Ustawiając odpowiednie członków strukturę MENUITEMINFO , wartość zdefiniowanych przez aplikację, która nosi nazwę elementu danych, można skojarzyć z każdego elementu menu. Aby to zrobić, określ wartość MIIM_DATA dla Państwa fMask i wartości zdefiniowanych przez aplikację dla członka dwItemData.

Element danych można używać w przypadku każdego typu elementu menu, ale jest szczególnie przydatne w przypadku elementów rysowane przez właściciela. Na przykład załóżmy, że struktura zawiera informacje używane do rysowania elementu menu. Aplikacja może używać danych elementu dla elementu menu do przechowywania wskaźnika do struktury. W menu Okno właściciela wiadomości WM_MEASUREITEM i WM_DRAWITEM są wysyłane dane elementu. Aby pobrać dane elementu menu w dowolnym czasie, należy użyć funkcji GetMenuItemInfo.

Aplikacje napisane dla wcześniejszych wersji systemu można w dalszym ciągu wywołania AppendMenu zawsze zwraca, InsertMenulub ModifyMenu , aby przypisać flagę MF_OWNERDRAW do elementu menu rysowane właściciela.

Po wywołaniu żadnego z tych trzech funkcji, można przekazać wartość 32-bitowy parametr lpNewItem . Wartość ta może reprezentować wszelkich informacji, który jest istotny dla aplikacji i że będzie miał dostęp do aplikacji, gdy element ma być wyświetlany. Na przykład wartość może zawierać wskaźnik do struktury; Struktura, z kolei może zawierać ciąg tekstowy i uchwyt na czcionkę logiczne, że aplikacja będzie używać do rysowania ciąg.

Index