Как убрать анимацию при Tap-And-Hold
Возникла задача: написать обработку тачскрина PocketPC на модальном диалоговом окне. На диалог накладывается красивая bitmap с разлинованными областями. При нажатии стилусом или пальцем на определенные зоны должны происходить какие-то действия (калькулятор, набор телефонного номера, запуск процессов и пр.). Все было достаточно просто (сделано на LBUTTONDOWN/LBUTTONUP), кроме двух моментов:
1. Если стилусом нажать и подержать - возникает событие Tap-and-hold, которое обычно сопровождается контекстным pop-up окошком, а также анимацией красных шариков
А эти шарики мне абсолютно были не нужны.
2. Если удержать нажатие и перевести стилус (палец) в другую область, то LBUTTONDOWN возникает в одной активной области, а LBUTTONUP - в другой. Что для подсветки кнопок не очень годится, так как для простоты я сделал подсветку инвертированием областей CDC.
Итак, решение, как избавится от Tap-And-Hold:
-
case WM_LBUTTONDOWN:
-
{
-
SHRGINFO shrg;
-
HMENU hmenu;
-
-
shrg.cbSize = sizeof(shrg);
-
shrg.hwndClient = hWnd;
-
shrg.ptDown.x = LOWORD(lParam);
-
shrg.ptDown.y = HIWORD(lParam);
-
shrg.dwFlags = SHRG_RETURNCMD | SHRG_NOANIMATION;
-
-
if (SHRecognizeGesture(&shrg) == GN_CONTEXTMENU) {
-
hmenu = GetSubMenu(g_hMainMenu, 0);
-
TrackPopupMenuEx(hmenu, TPM_LEFTALIGN, LOWORD(lParam),
-
HIWORD(lParam), hWnd, NULL);
-
}
-
break;
-
}
Спасибо за то, что вы добавили данный пост в

