15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Context Menu on Windows95 designed keyboard

Sergey S. Zyablitskiy -- Sergey@Redcom.Ru
Friday, November 01, 1996

Environment: VC++ 4.1, Win 95

I implement context menu like this:

void CClientsView::OnContextMenu(CWnd* pWnd, CPoint point) 
{  // make sure window is active
   GetParentFrame()->ActivateFrame();

   int nItem = GetSelectedItem();
   if (nItem != -1)
   {  CMenu menu;
      if (menu.LoadMenu(ID_POPUP_MENU))
      {  CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL);
         pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,
            point.x,point.y,AfxGetMainWnd());
      }
   }
}

It works, but when I press "context menu" key on my keyboard, which is
Windows95 designed, menu appears at top left corner of the screen.

How to obtain an information about how menu was activated: by pressing a
key or by clicking right mouse button?

With best wishes, Sergey S. Zyablitskiy.




Mike Blaszczak -- mikeblas@nwlink.com
Sunday, November 03, 1996

[Mini-digest: 3 responses]

At 16:39 11/1/96 +1000, "Sergey S. Zyablitskiy"  wrote:
>Environment: VC++ 4.1, Win 95

>I implement context menu like this:

> [...]

>It works, but when I press "context menu" key on my keyboard, which is
>Windows95 designed, menu appears at top left corner of the screen.

>How to obtain an information about how menu was activated: by pressing a
>key or by clicking right mouse button?

If the keyboard key is pressed, the point parameter is (-1, -1).

.B ekiM
http://www.nwlink.com/~mikeblas/
I'm afraid I've become some sort of speed freak.
These words are my own. I do not speak on behalf of Microsoft.

-----From: "Quang Ngo" 


Try this:

void CClientsView::OnContextMenu(CWnd* pWnd, CPoint point) 
	{
	if (GetAsyncKeyState(VK_RBUTTON) < 0)
		TRACE0("It was activated by the left button\n");
	else
		TRACE0("It was activated by keyboard (F10)\n");
	....
	}

        _,'|             _.-''``-...___..--';)  
        /_ \'.      __..-' ,      ,--...--'''   Quang Ngo
       <\    .`--'''       `     /'             jaguar@gaianet.net
        `-';'               ;   ; ;             
  __...--''     ___...--_..'  .;.'              
 (,__....----'''       (,..--''                



-----From: Jim Barry 

When the menu key is pressed, the OnContextMenu handler receives (-1, =
-1) in the 'point' argument. I usually just test whether or not the =
point lies within the window's client area.

- Jim





| Вернуться в корень Архива |