关于office右键问题

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在触摸屏中碰到这样一个问题,我发送模拟右键消息,在别的程序,比如vc,acdsee中都没有问题,但是在word,powerpoint中就会没有相应,原来代码这样,

if(LEFT==m_MouseBtn)

m_input.mi.dwFlags=MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN;

if(RIGHT==m_MouseBtn)

m_input.mi.dwFlags=MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_RIGHTDOWN;

m_input.mi.dx=((resultPt.x<<16)+m_sizeScreen.cx-1)/m_sizeScreen.cx;

m_input.mi.dy=((resultPt.y<<16)+m_sizeScreen.cy-1)/m_sizeScreen.cy;

m_input.mi.dwExtraInfo=GetMessageExtraInfo();

SendInput(1,&m_input,sizeof(INPUT));

,,

if(LEFT==m_MouseBtn)

m_input.mi.dwFlags=MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTUP; //|MOUSEEVENTF_VIRTUALDESK

if(RIGHT==m_MouseBtn){

m_input.mi.dwFlags=MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_RIGHTUP; //|MOUSEEVENTF_VIRTUALDESK

m_MouseBtn=LEFT;

}

m_input.mi.dx=((resultPt.x<<16)+m_sizeScreen.cx-1)/m_sizeScreen.cx;

m_input.mi.dy=((resultPt.y<<16)+m_sizeScreen.cy-1)/m_sizeScreen.cy;

m_input.mi.dwExtraInfo=GetMessageExtraInfo();

SendInput(1,&m_input,sizeof(INPUT));

这叫我很疑惑,不应该是触摸屏右键消息没有发送,别的程序的确收到了,查了一下msdn,没找到相关的,就试着把消息多发送了一次,就是改成,

if(LEFT==m_MouseBtn)

m_input.mi.dwFlags=MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN;

if(RIGHT==m_MouseBtn)

m_input.mi.dwFlags=MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_RIGHTDOWN;

m_input.mi.dx=((resultPt.x<<16)+m_sizeScreen.cx-1)/m_sizeScreen.cx;

m_input.mi.dy=((resultPt.y<<16)+m_sizeScreen.cy-1)/m_sizeScreen.cy;

m_input.mi.dwExtraInfo=GetMessageExtraInfo();

SendInput(1,&m_input,sizeof(INPUT));

if (m_input.mi.dwFlags &MOUSEEVENTF_RIGHTDOWN)

SendInput(1,&m_input,sizeof(INPUT));

,多了最后两行,up也是这样,这样,在触摸屏中测试office就没有问题了,虽然解决了问题,不过总觉得心虚,有疑问,

1,office需要接收两次右键消息才有相应?

2,如果是,是需要两次down,up,还是只需要两次up就可以了,?

碰到熟悉这方面知识的人,可以给个解释最好了,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航