各位高手,我是VC的初学者,现请教如下问题:窗口中有两幅图片,想要在运行后,一幅图片显示在窗口的中央且是固定的,另一幅图片可通过鼠标将其移动到窗口内任何位置并且通过键盘上的上下左右方向键也能使这幅图片在窗口内随意移动.还有,我加了一个picture控件,但在classwizard中却看不到这个控件,也就无法对其添加代码了,不知原因???
请大家指点,万分感激!!!!!!
请大家指点,万分感激!!!!!!
解决方案 »
- vc怎么获取系统中应用程序名及其路径
- 求助:类似程序员GUI设计的示例代码
- 操作active web控件的问题
- 关于控件出错的问题
- ---------200-----------日子久了,就成星星了,放分先
- 深入浅出MFC真的想大家说的那样神奇 那样优秀吗???
- 如何让其他的进程调用我做的一个dll?
- 能不能只把想要用到的程序更改成支持unicode呢?而不是整个工程。
- 找不到acmdriver怎么办?
- How to read the image file such as Tiff?
- 请大家根据我的情况,推荐基本VC++入门的书.多谢多谢了
- 在MFC程序中想把在另一个工程里已经有的一个窗口类继承下来,应该怎么做啊
HBITMAP hBitmap;
hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_strBMPfn/*your bmp file name*/,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
ASSERT(hBitmap);
HBITMAP OldBitmap;
CDC MemDC;
MemDC.CreateCompatibleDC(&dc);
OldBitmap=(HBITMAP)MemDC.SelectObject(hBitmap);
///显示它
int oldmode;
if(dc.GetDeviceCaps(RASTERCAPS)&RC_STRETCHBLT==0)
{
MessageBox("can't support");
return;
}
oldmode=dc.SetStretchBltMode(COLORONCOLOR);
dc.StretchBlt(destleft/*upleft point's x coordinate*/,destup/*upleft point's y coordinate*/,destwidth,destheight,&MemDC,0,0,lwidth/*bitmap's width*/,lheight/*bitmap's height*/,SRCCOPY);
dc.SetStretchBltMode(oldmode);
MemDC.SelectObject(OldBitmap);显示可移动图像的方法:将显示目标区域的左上角坐标值和宽高值设为全局变量,在你的鼠标移动和键盘的响应函数中修改这些全局变量为你所希望的值,然后使用InvalidateRect函数重画窗口,程序会执行OnPaint函数,你只需将上面StretchBlt函数中的相应变量改为相应的全局变量即可