質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

タッチパネル

タッチパネルとは、画面に指やペンで直接触れてコンピューターを操作する電子機器のことです。表示装置と入力装置の2つの機能を組み合わせたデバイスです。

Q&A

1回答

11689閲覧

MFCアプリ上で、Windows10のタッチ操作の長押し(右クリック)を発生させるには

tosshi_ste

総合スコア8

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

タッチパネル

タッチパネルとは、画面に指やペンで直接触れてコンピューターを操作する電子機器のことです。表示装置と入力装置の2つの機能を組み合わせたデバイスです。

0グッド

0クリップ

投稿2016/11/06 09:33

###前提・実現したいこと
Windows10+タッチパネル、VisualStudio2015で
VC++ MFCのネイティブアプリを作っています。
アプリ上で右クリックした際にポップアップメニューを出します。
マウスで右クリックした際にポップアップメニューは出て、
タッチパネルの操作でも同様にポップアップメニューを出したいです。

###発生している問題・エラーメッセージ
Windows10のタッチパネルでは、タッチ操作でタッチしたところを
長押ししていると、タッチしているところに四角の枠が出て、
その状態でタッチをやめるとポップアップメニュー(右クリックメニュー)が
出ます。
VisualStudioでMFCアプリ(SDIアプリとダイアログアプリ)を
新規作成し実行したところ、タッチ操作の長押しで四角枠が出るのは、
タイトルバーのところだけ(ダイアログアプリでは、
OK、キャンセルボタン上も四角枠が出ました)で、その他のところでは、
長押ししても四角枠が出ませんでした。

タイトルバー以外のところでも、タッチ操作で長押しした際に
四角枠が出るようにするにはどうすればよいでしょうか?

###該当のソースコード
なし

###試したこと
WM_GESTUREを処理して、GID_PRESSANDTAPを取得し、
ポップアップメニューを出すということは出来ました。
ただし、この時のタッチ操作は、長押し→四角枠ではなく、
1点目のタッチに加えもう1点をタッチするという操作法で
GID_PRESSANDTAPを取得できました。

しかし、OSでの操作と異なるので、OSの操作と同じ操作としたい。
そもそもタイトルバー以外のところで長押ししても四角枠が
出てこないので、長押しして四角枠を出すにはどうしたら
よいかを知りたいです。

WM_GESTUREの処理とは別に、
RegisterTouchWindow(TRUE, 0);をして
WM_TOUCHを処理するようにもしてみましたが、
タッチ操作で長押し→四角枠の表示になりませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
VisualStudio2015 VC++ MFC
Windows10 タッチパネル

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

マイクロソフトのサイトから、’タッチ ジェスチャ’の説明とイベントのページ。
Windows タッチ ジェスチャの概要
’WM_RBUTTONDOWN’のイベントと’WM_RBUTTONUP’のイベントでシステム関係は処理していると推測します。
アプリで同様の処理は作成者の側という考えなのではないでしょうか?

投稿2016/11/06 09:46

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tosshi_ste

2016/11/06 10:10

回答ありがとうございます。 当初、ご回答いただいたHPを見て、プレスアンドホールドは、WM_RBUTTONDOWNとWM_RBUTTONUPを生成するのでWM_RBUTTONUPを処理してやるだけど良いのではと思ったのですが、そもそもプレスアンドホールドが、タイトルバー以外では出来ません。アプリ側でわざわざ実装しないといけないとは思えません。プレスアンドタップについては、少し実装が必要でしたが取得できています。
MasahikoHirata

2016/11/06 10:26

試しにマウスをつないで、長押しをしたい場所で右クリックするとどうなりますか?
tosshi_ste

2016/11/06 11:06

WM_RBUTTONDOWNとWM_RBUTTONUPが発生します。
MasahikoHirata

2016/11/06 11:08

その時に四角枠の表示はどうでした?
tosshi_ste

2016/11/06 11:23

マウスで操作した際は、四角枠は出ません。 先の回答を補足すると、マウスで右クリックしたらWM_RBUTTONDOWNとWM_RBUTTONUPが発生します。マウスをつないでマウスではなく指で長押ししても四角枠は出ず、WM_RBUTTONDOWNとWM_RBUTTONUPは発生しません。(プレスアンドホールド操作ができない。) プレスアンドタップをするとWM_GESTUREメッセージが発生します。
MasahikoHirata

2016/11/06 11:25

つまり、どの方法でもアプリレベルでは四角枠は対応していないと理解するのですが。したがってアプリ側で動作を作成する必要があると思います。
tosshi_ste

2016/11/06 12:57

タイトルバーのところでは、長押し→四角枠が出るので、それとは別にアプリ側で長押し時の動作を実装するのは冗長と思うので、引き続き調べてみます。ありがとうございます。
MasahikoHirata

2016/11/06 13:10

おそらくタイトルバーはフォームの固有のObjectでMFC共通でしょうね。フォームの中のObjectはアプリ毎に違うはずですから。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問