CMenu::InsertMenu

BOOL InsertMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

BOOL InsertMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

Wartość zwracany

Niezerowa, jeśli funkcja jest skuteczne; inny sposób 0.

Parametry

nPosition

Określa element menu, przed którym nowego elementu menu jest wstawiany. Parametr nFlags może służyć do interpretowania nPosition w następujący sposób:

nFlags Interpretacja nPosition
MF_BYCOMMAND Określa, że parametr podaje identyfikator polecenia istniejący element menu. Jest to ustawienie domyślne, gdy ani MF_BYCOMMAND , ani MF_BYPOSITION nie jest ustawiona.
MF_BYPOSITION Określa, że parametr podaje pozycję istniejący element menu. Pierwsza pozycja jest w położeniu 0. Jeśli nPosition jest –1, nowego elementu menu jest dołączany do końca menu.

nFlags

Określa, w jaki sposób interpretowane jest nPosition i określa informacje dotyczące stanu nowego elementu menu, gdy jest ono dodawane do menu. Listę flagi, które mogą być ustawione zobacz opis funkcji członek AppendMenu zawsze zwraca . Aby określić więcej niż jedną wartość, należy użyć operatory operator OR połączyć je z flagą MF_BYCOMMAND lub MF_BYPOSITION.

nIDNewItem

Określa identyfikator polecenia nowego elementu menu lub, jeżeli nFlags jest ustawiona na MF_POPUP, uchwyt menu (HMENU) z menu wyskakującego. Parametr nIDNewItem jest ignorowane (nie jest to konieczne), jeśli nFlags jest ustawiona na MF_SEPARATOR.

lpszNewItem

Określa zawartość nowego elementu menu. nFlags może służyć do interpretowania lpszNewItem w następujący sposób:

nFlags Interpretacja lpszNewItem
MF_OWNERDRAW Zawiera wartość 32-bitowe dostarczone aplikacji, w aplikacji można używać do utrzymywania dodatkowych danych skojarzonych z elementu menu. Ta wartość 32-bitowy jest dostępna do aplikacji w itemData członkiem struktury dostarczonych przez WM_MEASUREITEM i WM_DRAWITEM wiadomości. Te wiadomości są wysyłane, gdy element menu jest początkowo wyświetlany lub zmianie.
MF_STRING Zawiera długą wskaźnik na ciąg zakończony wartością zerową. To jest interpretacja domyślne.
MF_SEPARATOR Parametr lpszNewItem jest ignorowany, (zbędny).

pBmp

Punkty do obiektu CBitmap , który będzie używany jako element menu.

Uwagi

Wstawia nowy element menu pozycji określonej przez nPosition i inne elementy są przenoszone w menu. Aplikację można określić stan elementu menu przez ustawienie wartości w nFlags.

Gdy menu, w którym znajduje się w oknie zostanie zmieniona (spasane lub nie jest wyświetlane okno), aplikacja powinna wywołać CWnd::DrawMenuBar.

NIDNewItem określa wyskakujące menu, staje się częścią menu, w którym jest wstawiany. Jeśli zniszczenia tego menu, menu wstawiane również zostać zniszczone. Wstawiony menu powinno być zdjęte z obiektu CMenu w celu uniknięcia konfliktu.

Jeśli aktywne, który wielu dokumentów interfejsu (MDI) dziecko okno jest zmaksymalizowane i wstawia aplikacji, który jest wyskakujące menu w menu aplikacji MDI przez wywołanie funkcji i określające flagę MF_BYPOSITION , menu dodaje się pozycję dalej lewy, niż oczekiwano. Dzieje się tak, ponieważ menu sterowania aktywne okno potomne MDI zostanie wstawiony na pierwszym miejscu paska menu Okno ramek MDI. Położenie menu poprawnie, wniosek należy dodać 1 wartość pozycji, która w przeciwnym razie byłyby wykorzystywane. Aplikacja może używać wiadomości WM_MDIGETACTIVE ustalenie, czy dziecko aktualnie aktywne okno jest zmaksymalizowane.

Omówienie CMenu |nbsp; Klasa członków | Wykres hierarchii

Zobacz teżnbsp;CMenu::AppendMenu, CWnd::DrawMenuBar, CMenu::SetMenuItemBitmaps, CMenu::Detach, :: InsertMenu

Index