Added context menu support under PocketPC

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-02-28 13:37:23 +00:00
parent 42b16af462
commit 7d4f65e393
2 changed files with 48 additions and 0 deletions

View File

@@ -110,6 +110,12 @@
#if defined(__WXWINCE__)
#include "wx/msw/wince/missing.h"
#ifdef __POCKETPC__
#include <windows.h>
#include <shellapi.h>
#include <ole2.h>
#include <aygshell.h>
#endif
#endif
#if defined(TME_LEAVE) && defined(WM_MOUSELEAVE)
@@ -487,6 +493,10 @@ void wxWindowMSW::Init()
m_pendingPosition = wxDefaultPosition;
m_pendingSize = wxDefaultSize;
#ifdef __POCKETPC__
m_contextMenuEnabled = false;
#endif
}
// Destructor
@@ -2582,6 +2592,35 @@ WXLRESULT wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM l
wxCHECK_MSG( win, 0,
_T("FindWindowForMouseEvent() returned NULL") );
}
#ifdef __POCKETPC__
if (IsContextMenuEnabled() && message == WM_LBUTTONDOWN)
{
SHRGINFO shrgi = {0};
shrgi.cbSize = sizeof(SHRGINFO);
shrgi.hwndClient = (HWND) GetHWND();
shrgi.ptDown.x = x;
shrgi.ptDown.y = y;
shrgi.dwFlags = SHRG_RETURNCMD;
// shrgi.dwFlags = SHRG_NOTIFYPARENT;
if (GN_CONTEXTMENU == ::SHRecognizeGesture(&shrgi))
{
wxPoint pt(x, y);
pt = ClientToScreen(pt);
wxContextMenuEvent evtCtx(wxEVT_CONTEXT_MENU, GetId(), pt);
evtCtx.SetEventObject(this);
if (GetEventHandler()->ProcessEvent(evtCtx))
processed = true;
else
return MSWDefWindowProc(message, wParam, lParam);
}
}
#endif
#else // !__WXWINCE__
wxWindowMSW *win = this;
#endif // __WXWINCE__/!__WXWINCE__