它只附帶一個ListBox和PopupMenu(Delphi XE7,VCL)。當我右鍵單擊列表框時,調用菜單,並且當我長時間按下平板電腦上的手寫筆(或手指)時不會。可能是什麼問題呢?謝謝!Delphi XE7:如何在Windows平板電腦上調用ListBox的彈出式菜單?
0
A
回答
1
根據這個MSDN文檔:
How to Enable Tablet Press-and-Hold Gesture in MFC Application
要啓用右鍵單擊的概念,通常是指「顯示上下文菜單」,並附帶在WM_RBUTTONDOWN,WM_RBUTTONUP的形式,和WM_CONTEXTMENU消息和ISG_HOLDENTER和ISG_RIGHTTAP事件,必須爲該窗口啓用「按住」手勢。爲了檢測這種手勢,必要時引入一些延遲來區分簡單的「按壓」(被視爲左鍵單擊)和「按住」(右鍵單擊)。因此,左鍵單擊事件將需要更長的時間,而應用程序看起來反應較慢。所以,出於這個原因,默認行爲是禁用「按住」手勢。
如果沒有這種手勢,長按不會產生WM_CONTEXTMENU
消息,VCL用它來顯示彈出式菜單。
如果你的應用程序要啓用按下並保持姿勢,你必須[處理
WM_TABLET_QUERYSYSTEMGESTURESTATUS
消息]在[窗口]和返回的東西,不包括TABLET_DISABLE_PRESSANDHOLD標誌。
嘗試繼承ListBox的WindowProc
財產趕上那消息:
private
PrevListBoxWndProc: TWndMethod;
procedure ListBoxWndProc(var Message: TMessage);
...
procedure TMyForm.FormCreate(Sender: TObject);
begin
PrevListBoxWndProc := ListBox1.WindowProc;
ListBox1.WindowProc := ListBoxWndProc;
end;
procedure TMyForm.ListBoxWndProc(var Message: TMessage);
const
WM_TABLET_QUERYSYSTEMGESTURESTATUS = 0x02CC;
begin
if Message.Msg = WM_TABLET_QUERYSYSTEMGESTURESTATUS then
Message.Result := 0
else
PrevListBoxWndProc(Message);
end;
相關問題
- 1. 選項菜單圖標沒有出現在平板電腦上
- 2. 如何在Delphi XE2中修復平板電腦的表單?
- 3. 平板電腦的下拉菜單
- 4. 如何使用Firemonkey訪問Windows平板電腦上的相機?
- 5. 如何在windows平板電腦上調試windows phone應用程序
- 6. 如何在平板電腦
- 7. 帶子菜單的菜單。個人電腦,平板電腦和手機
- 8. windows xp平板電腦sdk單聲道
- 9. 在平板電腦上的下拉菜單
- 10. Android菜單的圖標在平板電腦上不可見
- 11. Delphi XE2/XE3和Windows 8平板電腦/電話
- 12. 在平板電腦上
- 13. Drawbitmaps在平板電腦上
- 14. 遠程調試Windows平板電腦上的MobileFirst應用程序
- 15. ActionBarSherlock在平板電腦上顯示的菜單項不在電話上
- 16. 如何使形式不是平板電腦上調整手機
- 17. Delphi 2010平板電腦支持
- 18. CSS菜單不工作在平板電腦上
- 19. 在平板電腦上創建菜單選項按鈕
- 20. 菜單在平板電腦上不可見
- 21. Twitter Bootstrap下拉菜單在平板電腦上不可點擊
- 22. WPF ListBox SelectionChanged零星沒有在平板電腦上觸發
- 23. 如何隱藏Android平板電腦中的菜單欄?
- 24. 平板電腦上的ListPreference
- 25. 如何集成Windows OnScreen鍵盤(在Asus平板電腦上)api?
- 26. 10英寸平板電腦上的偏好菜單
- 27. 如何讓平板電腦僅適用於平板電腦,只適用於手機平板電腦?
- 28. 如何禁用智能手機和平板電腦的上下文菜單?
- 29. 如何檢測平板電腦模式
- 30. 在平板電腦上顯示平板電腦Samsung Galaxy tab 3上的信息
你是如何連接的菜單? –