Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выпадающее меню.... [D7, WinXP]


yarkeyev ©   (2005-05-19 20:22:00) 

делаю эмуляцию работы аськи 2003
есть кнопка, нужено чтобы при нажатии на нее левой кнопкой мыши появлялось выпадающее меню с пунктами меню, есть варианты?


kat   (2005-05-19 20:49:00) [1]

вот исходник на С++ для WinApi (лень переводить) :
//переменные
HMENU men;
const int ID_M1=7130;
const int ID_M2=7131;
//создание меню
men=CreatePopupMenu();
InsertMenu(men, -1, 0, ID_M1, "1");
InsertMenu(men, -1, 0, ID_M2, "Exit");
//в обработчике события
case WM_USER+123:
  TrackPopupMenu(men,0,wParam+stx+265,
                                sty+24+lParam,50,h,0);
  break;
case WM_COMMAND:
  wmId    = LOWORD(wParam);
  wmEvent = HIWORD(wParam);
  // Parse the menu selections:
  switch (wmId)
  {
   case ID_M2:
      SendMessage(h,WM_DESTROY,0,0);
      break;
   case ID_M1:
      MessageBox(h,"=)","=))",MB_OK);    
      break;
   default:
      return DefWindowProc(hWnd, message, wParam, lParam);
  }
  break;

//в данном случае нажатие кнопки отлавливала библиотека с "хуком", и отсылала моей форме сообщение WM_USER+123, а та уже в свою очередь создавала меню и обрабатывала для него события.

Если ничего не ясно, гоу учить винапи и С++


Наверх

Титульная страница Поиск, карта сайта Написать письмо