Доклад: Как самому сделать plug-in к FAR на Visual C++
char p[128], o[128]; // Для создания строк меню
int i=0; // Счетчик
struct FarMenuItem MenuItems[64]; // Описание меню, которое создаст для нас Far
memset(MenuItems,0,sizeof(MenuItems)); // Инициализируем наше меню
MenuItems[0].Selected=TRUE;
hwnd = GetDesktopWindow(); // Получаем handle для desktop
hwnd = GetWindow(hwnd, GW_CHILD); // Получаем его handle
while (hwnd !=0) // Пока оно не последнее
{
hwnd = GetWindow(hwnd, GW_HWNDNEXT); // получим handle окна
GetWindowText(hwnd,p,128); // и его заголовок
if (strlen(p)>0) // если заголовок есть
{
sprintf(o,"%0.8xld %s", hwnd, p); // сделаем строчку
strcpy(MenuItems[i++].Text, o); // скопируем эту строчку в массив MenuItems
}
}
// вызываем созданное нами меню, получаем номер выбранного пункта - MenuCode
//
int MenuCode=Info.Menu(Info.ModuleNumber,
-1,-1,0,
FMENU_AUTOHIGHLIGHT|FMENU_WRAPMODE,
WINDOW_HEAD,
NULL,
"Menu content",
NULL,
NULL,
MenuItems,
i);