我建了个MFC应用程序,想在窗口实现矩形的移动,捕捉KEYDOWN事件,
if(nChar==VK_LEFT )
{
m_group[0]++;
}
if(nChar==VK_RIGHT )
{
m_group[1]++;
}
if(nChar==VK_UP )
{
m_group[2]++;
}
if(nChar==VK_DOWN )
{
m_group[3]++;
} AfxBeginThread(ThreadProc1,this,NULL );
AfxBeginThread(ThreadProc2,this,NULL );
AfxBeginThread(ThreadProc3,this,NULL );
AfxBeginThread(ThreadProc4,this,NULL );
其中m_group数组为View类数据成员,四个进程分别判断这四个元素的值的变化以进行移动,结果是可以移动的,但在各个键转换或刚按下时,总有一点停顿,请问怎么解决,可以使移动连续点.高手帮帮忙.!
if(nChar==VK_LEFT )
{
m_group[0]++;
}
if(nChar==VK_RIGHT )
{
m_group[1]++;
}
if(nChar==VK_UP )
{
m_group[2]++;
}
if(nChar==VK_DOWN )
{
m_group[3]++;
} AfxBeginThread(ThreadProc1,this,NULL );
AfxBeginThread(ThreadProc2,this,NULL );
AfxBeginThread(ThreadProc3,this,NULL );
AfxBeginThread(ThreadProc4,this,NULL );
其中m_group数组为View类数据成员,四个进程分别判断这四个元素的值的变化以进行移动,结果是可以移动的,但在各个键转换或刚按下时,总有一点停顿,请问怎么解决,可以使移动连续点.高手帮帮忙.!
解决方案 »
- 如何获得其他程序中Listview每个item的字体颜色?
- 键盘模拟问题
- 半年前无聊,写了一个通过MSN实现类似FTP的东西,有没有市场啊。呵呵
- waiting anwser online !!!
- 请问如何才能杀死其它行程中的窗口。
- 我做了一个activex 控件,想自定义一个结构通过接口参数传给控件,问如何来做??(问题解决马上给分)
- 我想把CEdit的鼠标和键盘事件屏蔽掉,但是,按向下箭头键时还时会出现一个选择区域,怎么把它屏蔽掉
- TreeCtrl 的 children 参数到底怎么回事
- 太可怕了,刚打算学VC,VC.NET又来了,学什么好啊
- ATL中如何输出动态字符串数组?
- 在VC中使用IE控件的问题
- asp 使用com组件调用GDI函数会有权限方面的问题吗???
这个是由系统的控制面板里的按键重复延迟决定的你可以改成在线程中直接用GetAsyncKeyState(VK_UP)来查询方向键的状态来移动,就不会存在停顿的问题,而且可以两个键一起按
注:在你的线程中,而不是在OnKeyDown中if(GetAsyncKeyState(VK_LEFT) < 0)
{
m_group[0]++;
}
...
if(GetAsyncKeyState(VK_LEFT)<0)
{
m_group[0]++;
}
是要查询VK_UP还是VK_LEFT,返回值用 <0 ?能说详细点吗?