Здравствуйте, уважаемые подписчики. Перед вами очередной выпуск рассылки "WinAPI
на русском".
Сайт рассылки: http://www.winnt.rsm.org.ru. Материалы по Win32 API, C++Builder.
Раздел "WinAPI": http://www.winnt.rsm.org.ru/winapi/winapi.htm
Раздел "C++Builder": http://www.winnt.rsm.org.ru/cbuilder/cbuilder.htm
Раздел "Советы & примеры": http://www.winnt.rsm.org.ru/tipstricks/tipstricks.htm
Обновления на сайте
В раздел "Советы и Примеры" добавились ответы на вопрос:
Как узнать разрешение экрана? (WinAPI вариант)
Как узнать частоту обновления экрана
Перевод
Сегодня вашему вниманию представлен перевод функции TrackPopupMenu/
TrackPopupMenu
Функция TrackPopupMenu отображает меню быстрого вызова (shortcut menu) в указанном
месте экрана и отслеживает выбор пунктов меню. Меню быстрого вызова может появляться
в любом месте экрана.
BOOL TrackPopupMenu(
HMENU hMenu, // дескриптор меню быстрого вызова
UINT uFlags, // флаги положения на экране и кнопки мыши
int x, // горизонтальная позиция в экранных координатах
int y, // вертикальная позиция в экранных координатах
int nReserved, // зарезервирован, значение должно быть равно нулю
HWND hWnd, // дескриптор окна-владельца
CONST RECT *prcRect // указывает на структуру типа RECT
// которая определяет территорию "непропадания" меню
);
Параметры
hMenu – идентифицирует отображаемое меню. Дескриптор может быть получен вызовом
функции CreatePopupMenu для создания нового меню или вызовом GetSubMenu для извлечения
дескриптора подменю, связанного с существующим пунктом меню.
uFlags – набор битовых флагов, который определяют опции функции.
Используйте одну из следующих констант битовых флагов для того, чтобы указать,
как функция позиционирует всплывающее меню по горизонтали:
Значение Пояснение
TPM_CENTERALIGN Если этот флаг установлен, функция центрирует меню по горизонтали
относительно координаты, заданной значением параметра x.
TPM_LEFTALIGN Если этот флаг установлен, функция размещает меню по горизонтали,
выравнивая левую сторону по координате, заданной значением параметра x.
TPM_RIGHTALIGN Если этот флаг установлен, функция размещает меню по горизонтали,
выравнивая правую сторону по координате, заданной значением параметра x.
Используйте одну из следующих констант битовых флагов для того, чтобы указать,
какую кнопку мыши отслеживает меню быстрого вызова.
Значение Пояснение
TPM_LEFTBUTTON Если этот флаг установлен, меню отслеживает левую кнопку мыши.
TPM_RIGHTBUTTON Если этот флаг установлен, меню отслеживает правую кнопку мыши.
x – определяет горизонтальное положение меню быстрого вызова в экранных координатах.
y – определяет вертикальное положение меню быстрого вызова в экранных координатах.
nReserved – зарезервирован. Значение должно быть равно нулю.
hWnd – идентифицирует окно, которое владеет меню быстрого вызова. Это окно получает
все сообщения от меню. Окно не получает сообщения WM_COMMAND от меню до тех пор,
пока функция не завершит выполнение.
prcRect – указывает на структуру типа RECT, которая определяет часть экрана,
в которой пользователь может что-либо выбирать, не вызывая исчезновения меню.
Если значение этого параметра равно NULL, меню пропадает, если пользователь щелкает
мышью вне меню.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об
ошибке вызовите функцию GetLastError.
См. также
CreatePopupMenu, GetSubMenu, RECT, WM_COMMAND.
хелп по WinAPI: http://www.winnt.rsm.org.ru/winapi/win32api.exe
С уважением,
ведущий рассылки
Тарас Сорока.
mailto:tnsoroka@online.ru