Calling SetGestureConfig method affects onmousemove override of control
up vote
0
down vote
favorite
To handle touch gestures like pinching, I am calling the SetGestureConfig
method in WndProc
override method available in control.
I would like to use this method only for pinching gesture instead of GC_ALLGESTURES.
Here is the code
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
gc.dwID = 0;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
if (!result)
{
throw new Exception("Error in execution of SetGestureConfig");
}
}
break;
//... other codes if any
}
Before using this code, when I touch and move fingers on the control, OnMouseMove
override method of the control will be called. But after using this code, it is not the case.
I am handling gesture related functionalities like pinching, panning, etc separately and it is working fine.
Panning should happen only after pinching gesture. If pinching gesture is performed on the control, then panning should be performed on touch move. If pinching gesture is not performed on the control, then I am expecting the default mouse move event to trigger during touch move
But calling the SetGestureConfig
method, does not trigger the default mouse move event.
Should I manually call OnMouseMove
during pan gesture that occurs without pinching ? Or is there any modification should be made in call to the SetGestureConfig
method to avoid blocking the OnMouseMove
during pan gesture.
c# winforms onmousemove
add a comment |
up vote
0
down vote
favorite
To handle touch gestures like pinching, I am calling the SetGestureConfig
method in WndProc
override method available in control.
I would like to use this method only for pinching gesture instead of GC_ALLGESTURES.
Here is the code
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
gc.dwID = 0;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
if (!result)
{
throw new Exception("Error in execution of SetGestureConfig");
}
}
break;
//... other codes if any
}
Before using this code, when I touch and move fingers on the control, OnMouseMove
override method of the control will be called. But after using this code, it is not the case.
I am handling gesture related functionalities like pinching, panning, etc separately and it is working fine.
Panning should happen only after pinching gesture. If pinching gesture is performed on the control, then panning should be performed on touch move. If pinching gesture is not performed on the control, then I am expecting the default mouse move event to trigger during touch move
But calling the SetGestureConfig
method, does not trigger the default mouse move event.
Should I manually call OnMouseMove
during pan gesture that occurs without pinching ? Or is there any modification should be made in call to the SetGestureConfig
method to avoid blocking the OnMouseMove
during pan gesture.
c# winforms onmousemove
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
To handle touch gestures like pinching, I am calling the SetGestureConfig
method in WndProc
override method available in control.
I would like to use this method only for pinching gesture instead of GC_ALLGESTURES.
Here is the code
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
gc.dwID = 0;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
if (!result)
{
throw new Exception("Error in execution of SetGestureConfig");
}
}
break;
//... other codes if any
}
Before using this code, when I touch and move fingers on the control, OnMouseMove
override method of the control will be called. But after using this code, it is not the case.
I am handling gesture related functionalities like pinching, panning, etc separately and it is working fine.
Panning should happen only after pinching gesture. If pinching gesture is performed on the control, then panning should be performed on touch move. If pinching gesture is not performed on the control, then I am expecting the default mouse move event to trigger during touch move
But calling the SetGestureConfig
method, does not trigger the default mouse move event.
Should I manually call OnMouseMove
during pan gesture that occurs without pinching ? Or is there any modification should be made in call to the SetGestureConfig
method to avoid blocking the OnMouseMove
during pan gesture.
c# winforms onmousemove
To handle touch gestures like pinching, I am calling the SetGestureConfig
method in WndProc
override method available in control.
I would like to use this method only for pinching gesture instead of GC_ALLGESTURES.
Here is the code
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
gc.dwID = 0;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
if (!result)
{
throw new Exception("Error in execution of SetGestureConfig");
}
}
break;
//... other codes if any
}
Before using this code, when I touch and move fingers on the control, OnMouseMove
override method of the control will be called. But after using this code, it is not the case.
I am handling gesture related functionalities like pinching, panning, etc separately and it is working fine.
Panning should happen only after pinching gesture. If pinching gesture is performed on the control, then panning should be performed on touch move. If pinching gesture is not performed on the control, then I am expecting the default mouse move event to trigger during touch move
But calling the SetGestureConfig
method, does not trigger the default mouse move event.
Should I manually call OnMouseMove
during pan gesture that occurs without pinching ? Or is there any modification should be made in call to the SetGestureConfig
method to avoid blocking the OnMouseMove
during pan gesture.
c# winforms onmousemove
c# winforms onmousemove
edited Nov 13 at 6:20
asked Nov 13 at 5:14
Kira
855831
855831
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
It looks like we can control the gesture we want to listen. Referred remarks section of https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setgestureconfig
In the above code, I just need to make the following change to listen only to the pinching gesture and panning(only after pinching is performed). Changes are explained through comments
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
//Listen to required gestures here
//If 0, all gestures like pinching, panning, etc will be listened
//If GID_ZOOM, only pinching gesture will be listened
gc.dwID = IsPinchingPerformed ? 0 : GID_ZOOM;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
}
break;
//... other codes if any
}
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
It looks like we can control the gesture we want to listen. Referred remarks section of https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setgestureconfig
In the above code, I just need to make the following change to listen only to the pinching gesture and panning(only after pinching is performed). Changes are explained through comments
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
//Listen to required gestures here
//If 0, all gestures like pinching, panning, etc will be listened
//If GID_ZOOM, only pinching gesture will be listened
gc.dwID = IsPinchingPerformed ? 0 : GID_ZOOM;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
}
break;
//... other codes if any
}
add a comment |
up vote
0
down vote
accepted
It looks like we can control the gesture we want to listen. Referred remarks section of https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setgestureconfig
In the above code, I just need to make the following change to listen only to the pinching gesture and panning(only after pinching is performed). Changes are explained through comments
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
//Listen to required gestures here
//If 0, all gestures like pinching, panning, etc will be listened
//If GID_ZOOM, only pinching gesture will be listened
gc.dwID = IsPinchingPerformed ? 0 : GID_ZOOM;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
}
break;
//... other codes if any
}
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
It looks like we can control the gesture we want to listen. Referred remarks section of https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setgestureconfig
In the above code, I just need to make the following change to listen only to the pinching gesture and panning(only after pinching is performed). Changes are explained through comments
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
//Listen to required gestures here
//If 0, all gestures like pinching, panning, etc will be listened
//If GID_ZOOM, only pinching gesture will be listened
gc.dwID = IsPinchingPerformed ? 0 : GID_ZOOM;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
}
break;
//... other codes if any
}
It looks like we can control the gesture we want to listen. Referred remarks section of https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setgestureconfig
In the above code, I just need to make the following change to listen only to the pinching gesture and panning(only after pinching is performed). Changes are explained through comments
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
//Listen to required gestures here
//If 0, all gestures like pinching, panning, etc will be listened
//If GID_ZOOM, only pinching gesture will be listened
gc.dwID = IsPinchingPerformed ? 0 : GID_ZOOM;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
}
break;
//... other codes if any
}
answered Nov 13 at 6:19
Kira
855831
855831
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53274234%2fcalling-setgestureconfig-method-affects-onmousemove-override-of-control%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown