ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2457回复:15

再问一下Picture 的使用

楼主#
更多 发布于:2005-07-09 19:01
我用VC , 基于对话框的,用到Picture 静态控件,我在资源管理器中插入了几个图片,有什么方法在我点点击一下图片之后,将图片切换到下一张,有没有象setpos 这样的简单方法,我是超级菜菜,不知道怎样用的
谢谢回复!
hhyjmd
驱动牛犊
驱动牛犊
  • 注册日期2004-06-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-11 17:19
可以不使用Picture控件,在对话框的左击事件中(OnLButtonDown)改变图片序号,然后在调用一个画屏函数如:
DrawScreen(){
       CDC* pDC;
       pDC=GetDC();
    CDC memDC;
    CBitmap bitmap;
    
    memDC.CreateCompatibleDC(pDC);
    bitmap.LoadBitmap(IDB_BITMAP1);

    memDC.SelectObject(&bitmap);

    RECT rt;
    GetClientRect(&rt);
    pDC->StretchBlt(0,0,rt.right-rt.left,rt.bottom-rt.top,&memDC,0,0,427,317,SRCCOPY);
}

可以试一试。
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-13 09:11
用Picture 控件没有好的办法吗?
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-21 16:34
我用你的方法绘图可以了,但是图像如果被其他的窗口覆盖后就没有了,还是变成了原来的第一幅图像,,怎么回事呢?有什么办法解决问题
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-21 16:50
不服不行,Picture控件的SetBitmap函数在MSDN上写得明明白白,居然......
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-25 17:38
还是不明白啊,被其他窗口覆盖后还是没有了,怎么办啊???
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-07-25 19:48
还需要什么提示?调用SetBitmap不就行了。
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-27 09:05
还是没有搞明白,请大虾明示.在哪个函数里面调用此函数呢?窗口被覆盖后..WINDOWS 会产生哪个消息呀?
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-07-27 09:55
在PICTURE的左击事件中(OnLButtonDown).你需要自己生成一个CStatic的子类,重载OnLButtonDown.在PICTURE的属性中找到Notify,选中它.
"窗口被覆盖后..WINDOWS 会产生哪个消息呀?"
我不知道有什么消息,除非是你主动调用SetWindowPos之类函数,会收到WM_WINDOWPOSCHANGING和WM_WINDOWPOSCHANGED消息.
即使有什么消息也和你无关,你窗口被覆盖,反正看不到,就不用管界面了.
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-07-27 10:06
还有个简单的方法
在PICTURE的属性中找到Notify,选中它,然后处理它的BN_CLICKED事件,在其中调用SetBitmap方法.注意,可能要将PICTURE的ID改为不是IDC_STATIC.
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-07-27 14:46
我是说补覆盖以后再重新见到界面,我知道覆盖后不可见呀,问题是再次可见的时候他就是第一幅图像了,而不是我修改后的那一幅,我没有用到左击事件,我是在旁边加了一个滚动条,左击事件肯定不成,因为在其他的窗口最大化后再最小化,我的窗口从不可见变成可见的了,但我没有点击我的界面,他的图像是变回了第一幅而不是我先前修改的那一幅了,不知道说明白没有.
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-07-27 15:48
你没说明白,我看不懂.你要求点击一下就换一幅图,可是你不处理左击事件?加个滚动条做什么?
干脆你把项目打成包传上来,我给你改好得了.
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-07-28 09:57
好啊,多谢你,下面是我的程序,还有很多的问题我不明白,以后请多指教.我刚学VC
附件名称/大小 下载次数 最后更新
20050720.rar (4268KB)  26
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-07-28 11:43
你的程序除了显示图片和滚动条处理之外,写得很好啊,为何如此自谦!?
注意PICTURE属性中NOTIFY要选中.
附件名称/大小 下载次数 最后更新
20050720.rar (387KB)  18
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
ZFDok
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-07-29 11:45
麻烦你了,真的很好,我都不知道那个SetBitmap怎么用的,看到HBITMAP就不知道怎么回事了,一直没有搞懂,上面有一个老兄说的方法有点烦琐,现在的这个方法就很好,我想就应该有这样一种方法的,我直接修改ChangePicture函数就可以了,在滚动条的响应函数里面调用这个函数就一点问题也没有了.太好了,谢谢你.我学了半年的VC了,感觉还是没有入门,以后烦请多多指点.
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-07-29 12:35
不客气,不过我奇怪的是,你其他部分的代码非常专业啊.你为什么这么谦虚?
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
游客

返回顶部