| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1779 人关注过本帖
标题:在MFC中,我想点击一个按钮,然后窗口显示为其他图片
只看楼主 加入收藏
Frangmuler
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2013-4-5
收藏
 问题点数:0 回复次数:2 
在MFC中,我想点击一个按钮,然后窗口显示为其他图片
我现在要搞个虚拟界面。一运行程序,窗口界面是这样的

图片附件: 游客没有浏览图片的权限,请 登录注册
。。

在我点击了一个按钮后,怎么让这个工作窗口的图变成这样呢
图片附件: 游客没有浏览图片的权限,请 登录注册



各位前辈帮帮忙啊。我是初学者,有些知识点可能不太懂,各位可能辛苦点了。

[ 本帖最后由 Frangmuler 于 2013-5-2 18:50 编辑 ]
搜索更多相关主题的帖子: 运行程序 按钮 知识点 
2013-05-02 18:46
micky_o
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-8-5
收藏
得分:0 
这程序的窗口是个CView类或者继承的视图类吧,绘图都在OnDraw函数里,使用CDC类可以很容易绘图,你能画一个,应该可以画另一个。
我有丰富的VC代码,需要Q我  251700159
给你一个 使用IPICTURE的COM接口显示图片 的例子

void CArEditorView::OnAddPicture()

{

   

    CFileDialog dlg(1,"*.*",NULL,

        OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ENABLESIZING|

                OFN_FILEMUSTEXIST,

        "(*.JPG)|*.JPG|(*.GIF)|*.GIF|(*.BMP)|*.BMP|",this);

    if(dlg.DoModal()==IDCANCEL)

        return;

    str=dlg.GetPathName();



                // 显示图片

                IPicture *pPic;

    IStream *pStm;

   

    CFileStatus fstatus;

    CFile file;

    LONG cb;



   

   

    if (file.Open(t,CFile::modeRead)&&file.GetStatus(t,

        fstatus)&&

        ((cb = fstatus.m_size) != -1))

    {

        HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);

        LPVOID pvData = NULL;

        if (hGlobal != NULL)

        {

            if ((pvData = GlobalLock(hGlobal)) != NULL)

            {

                file.Read(pvData, cb);

                GlobalUnlock(hGlobal);

                CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);

               

                if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*

                    )&pPic)))

                {

                    OLE_XSIZE_HIMETRIC hmWidth;

                    OLE_YSIZE_HIMETRIC hmHeight;

                    

                    pPic->get_Width(&hmWidth);

                    pPic->get_Height(&hmHeight);

                    

                    double fX,fY;

                    fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/

                        ((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);

                    fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/

                        ((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);

                    if(FAILED(pPic->Render(*pDC,100,100,200,200,0,hmHeight,

                        hmWidth,-hmHeight,NULL)))

                        AfxMessageBox("Failed To Render The picture!");

                    pPic->Release();

                    

                }

                else

                    AfxMessageBox("Error Loading Picture From Stream!");

            }

        }

    }

    else

        AfxMessageBox("Can't Open Image File!");

}
2013-08-05 21:56
Frangmuler
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2013-4-5
收藏
得分:0 
回复 2楼 micky_o
谢谢,有不懂的会问你
2013-09-02 14:11
快速回复:在MFC中,我想点击一个按钮,然后窗口显示为其他图片
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041000 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved