vb实现键盘控制图形移动 10

 我来答
二百六十四
2013-08-15 · TA获得超过220个赞
知道答主
回答量:118
采纳率:0%
帮助的人:76.8万
展开全部
没有装VB6,提供一下方法,希望你自己写代码.
SetWindowLong设置窗口消息处理新函数地址.指向自己定义的消息处理函数.
自己定义的消息处理函数中获取 上 下 左 右 方向键按下产生的消息.msg的值是WM_COMMAND.怎么判断是方向键,查MSDN中关于WM_COMMAND消息的介绍.
获取图形的RECT结构值:GetWindowRect(图形控件的句柄,RECT结构指针).
左方向时,将RECT的left成员的值减去一个值,这个值是移动时的像素数.
右方向时,将RECT的left成员的值加上一个值,同上.
上方向时,将RECT的top成员的值减去一个值,同上.
下方向时,将RECT的top成员的值加上一个值,同上.
然后使用SetWindowPos(hPicture,0,Rect.left,Rect.top,0,0,SWP_NOSIZE)进行图形控件的位置设置.hPicture指图形控件的句柄.SWP_NOSIZE指不更改控件尺寸.

步骤就是这样,优点是,即使窗体上有其他控件,焦点在其他控件上,主窗体依然可以通过方向键控制图形的移动.因为所有子控件收到按键消息时,都会转发WM_COMMAND消息给主窗体.部分子控件可能不接收按键消息.
lyj2045
2013-08-18 · TA获得超过112个赞
知道答主
回答量:227
采纳率:0%
帮助的人:98.9万
展开全部
你的图片控件Image1,控制Image1的控件Picture1。
代码
Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
If Keycode = 37 then Image1.Left = Image1.Left - 100
If Keycode = 38 then Image1.Top = Image1.Top - 100
If Keycode = 39 then Image1.Left = Image1.Left + 100
If Keycode = 40 then Image1.Top = Image1.Top + 100
End Sub
按键盘上方向键即可移动
追问
不行,picture1没有keydown这个功能
追答

不会吧,Picture控件是有的

,你要按代码窗口上的第二个文本框,那里有Click、Keydown等等事件

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式