VC中MFC怎么用上下键来控制图片的移动

MFC的对话框怎么用上下键来控制图片的移动

你可以将你想要移动的图片关联一个类对象,然后在那个新类中响应WM_KEYDOWN和WM_KEYUP消息。之后对这两个消息添加你要处理的操作,就是移动的功能。先对上下左右的方向键进行if()的判断,不同按键处理函数不同。但都是用BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );来重新设置你要的移动位置。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-10
你可以定义一个CRect对象 rect;,每当你按下上下键值是,更改rect.left和rect.top的值,紧接着再把图片显示在rect所指区域即可。你还可以更改rect.width(),rect.height()来改变显示的图像的大小。(原图大小始终不用边的)。
如果还有什么不懂得话可以再问我,希望对你有启发。追问

如何定义CRect对象 能不能详细点

追答

CRect rect;//生成一个CRect对象 rect
捕获上下键按下的消息
在消息响应函数你面写
rect.left = rect.left + 10;//改变矩形区域左上角的x坐标
rect.top = rect.top + 10;//改变矩形区域左上角的y坐标
rect.width() = rect.width() + 10;//改变矩形区域宽度
rect.height() = rect.height() + 10;//改变矩形区域高度

第2个回答  2012-04-11
在键盘相应事件里面移动rect的top和left就可以了

CRect rect;

如何运用VC图形功能
简单点说:就是响应键盘按键消息,在消息函数里对你的图形进行位置移动。移动就是改变x,y坐标,然后再输出,就可以实现移动了。如果你是新手,建议你先学习一下DC(device context)。

《vc++ mfc》如何实现图片切换
如果两张图片大小相同或bbb大于aaa,将图片bbb覆盖在aaa显示的位置就可以了,反之需要先将aaa显示区域用底色填充,然后显示bbb

vc打开多个图片 然后点击按钮显示下一张 或上一张
当你切换图片时,就调用SetBitmap(HBITMAP hBitmap)函数,就可以切换图片了。SizeToFit()函数是根据你设定的图片,自动调整控件窗口大小。ifndef _THEMEDIMAGE_H_INCLUDE_define _THEMEDIMAGE_H_INCLUDE_pragma once \/\/\/ \/\/ Themed Image control \/\/ class CThemedImageCtrl : public CWindowImpl<CTh...

vc mfc 问题,怎样在编辑框中响应上下左右键的消息?
在类向导中 重载 PreTranslateMessage(MSG* pMsg) 函数,并在函数中通过对 pMsg->message ==WM_KEYDOWN进行截获,即可获得按键的消息

mfc中,鼠标左键单击翻图是怎样实现的?(down up)
这不就是和自定义按钮的工作原理一样吗?有四张图片,正常、热点、点击和禁用。给你个VC++ WTL的按钮控件工程,供你做思路参考。http:\/\/blog.csdn.net\/renstarone\/article\/details\/11177051

VC\/MFC中如何使用Accelerator来表示快捷键?
首先,将光标定位到你想要操作的文本起始位置。紧接着,使用SHIFT键配合上下方向键,轻松实现文本的向上或向下选择。同样,配合SHIFT键和左右方向键,你可以在同一行内便捷地向左或向右选择。特别值得一提的是,对于频繁需要发送新信息的场景,如使用Ctrl+z(并按回车键),你可以通过这个快捷组合快速完成...

vc\/mfc listcontrol响应键盘上下键问题
当空间监听到键盘消息‘下’时,开始响应函数,此时光标并未移动,所以取得的数据时当前行。当键盘响应函数完成时,mfc内部发送消息 将光标下移。在用户看来,前2步会在一瞬间完成。就造成了光标下移,但数据确是上一行的现象。--- 更新数据的响应函数单用一个按钮来解决?如果非要实现按‘下’后就...

用VC++(MFC)如何实现文件夹的移动?
可以用头文件 <process.h> 中的函数 int system( const char *command );这个函数把字符串command转换为相应的命令 然后用DOS命令xcopy应该就可以了 system("xcopy source_dir destination_dir parameter");

MFC中第二个界面按“上一步”按钮返回上一个界面怎么实现
CXXDlg dlg;dlg.DoModal();ShowWindow(SW_HIDE);上一步按钮:OnButton(){ CParentDlg *p=(CParentDlg*)GetParent();p->ShowWindow(SW_SHOW);CDialog::OnCancel;}

vc++中的mfc编程中“::”这个符号表示什么意思呢?
这是作用域运算符。 vc++实现的是c++编译器,在c++中用类封装抽象编程对象。 比如 class test{ public:static void print(){ printf("hello world\\n");};其中函数print是test类的成员函数,它在test的花括号内,即在test类的作用域内。我们可以 test::print() \/\/调用这个函数。在c++中要调用...

相似回答