Функция GetMenuString копирует текстовую строку заданного пункта меню в определяемый буфер.
Синтаксис
int GetMenuString( HMENU hMenu, UINT uIDItem, LPTSTR lpString, int nMaxCount, UINT uFlag ); |
Параметры
hMenu
[in] Дескриптор меню.uIDItem
[in] Определяет пункт меню, который измениться, как обусловлено параметром uFlag .lpString
[out] Указатель на буфер, который принимает символьную строку с нулем в конце. Если строка такой же длины или длиннее чем lpString, строка обрезается, а признак конца ПУСТО (NULL) добавляется. Если lpString имеет значение ПУСТО (NULL), функция возвращает длину строки меню.nMaxCount
[in] Устанавливает максимальную длину строки для копирования, в символах. Если строка длиннее чем максимум, заданный в параметре nMaxCount, лишние символы обрезаются. Если nMaxCount - 0, функция возвращает длину строки меню.uFlag
[in] Устанавливает, как интерпретировать параметр uIDItem. Этот параметр должен быть одним из ниже перечисленных значений.
Значение |
Предназначение |
MF_BYCOMMAND |
Указывает, что uIDItem дает идентификатор пункта меню. Если ни флажок MF_BYCOMMAND, ни флажок MF_BYPOSITION не установлен, флажок MF_BYCOMMAND является флажком, заданным по умолчанию. |
MF_BYPOSITION |
Указывает, что uIDItem дает отсчитываемую от нуля относительную позицию пункта меню. |
Возвращаемые значения
Если функция завершается успешно, возвращаемое значение определяет число символов, скопированное в буфер, не включая нулевой символ завершения.
Если функция завершается ошибкой, величина возвращаемого значения - нуль.
Если заданный пункт не типа MFT_STRING, тогда величина возвращаемого значения - нуль.
Windows 98/Me и Windows 2000/XP: MIIM_STRING заменяет MFT_STRING.
Замечания
Обратите внимание! на то, что функция GetMenuString заменена. Используйте функцию GetMenuItemInfo, чтобы извлечь текст пункта меню. |
Параметр nMaxCount должен быть на единицу больше, чем число символов в текстовой строке, чтобы разместить символ завершения строки.
Если nMaxCount - 0, функция возвращает длину строки меню.
Обратите внимание! на то, что параметр lpString - буфер TCHAR, а nMaxCount - длина строки меню в TCHARs. Неправильные размеры этих параметров могут стать причиной усечения строки, которое приведет к возможной потере данных. |
Windows 95/98/Me: GetMenuStringW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.
Пример
Пример смотри в статье Создание редактируемых пользователем ускорителей клавиатуры.
Смотри также
Краткий обзор Меню, GetMenuItemID
Размещение и совместимость GetMenuString |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |