首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

在对话框中加入位图时出现的有关问题·

2012-01-11 
在对话框中加入位图时出现的问题急在对话框中的指定位置加入位图时,遇到了如下的问题:d:\MyDocuments\Visu

在对话框中加入位图时出现的问题·急
在对话框中的指定位置加入位图时,遇到了如下的问题:
d:\My   Documents\Visual   Studio   Projects\Rect\RectDlg.cpp(208):   error   C2664:   “IPicture::Render”   :   不能将参数   1   从“CDC   *”转换为“HDC”
我是想在Pictrue   Control控件的一个位置添加一个位图,但是出现了上述错误,现在还没有想到解决的办法,各位大哥帮我分析下啊。谢谢了!
下面是程序的部分代码:
CWnd*   pWnd   =   GetDlgItem(IDC_STATIC1);
CClientDC   dc(pWnd);
HANDLE   hFile   =   CreateFile( "1.bmp ",GENERIC_READ,FILE_SHARE_READ,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(INVALID_HANDLE_VALUE==hFile)
return;
DWORD   dsize,outsize;
dsize=   GetFileSize(hFile,NULL);
char   *data   =   new   char[dsize];
ReadFile(hFile,data,dsize,&outsize,NULL);


HGLOBAL   hGlobal   =   GlobalAlloc(GMEM_MOVEABLE,dsize);
LPVOID   pvData   =   GlobalLock(hGlobal   );
memcpy(pvData,data,dsize);
GlobalUnlock(hGlobal);

IPicture   *pic   =   NULL;
LPSTREAM   pStream   =   NULL;
HRESULT   hr   =   CreateStreamOnHGlobal(hGlobal,   TRUE,   &pStream   );
OleLoadPicture(pStream,   0,   FALSE,IID_IPicture,   (void   **)&pic);
pStream-> Release();

OLE_XSIZE_HIMETRIC   cx;
OLE_YSIZE_HIMETRIC   cy;
pic-> get_Width(&cx);
pic-> get_Height(&cy);


RECT   bounds;
bounds.top   =   0;
bounds.bottom   =   100;
bounds.left   =   0;
bounds.right   =   100;

//错误在这一行pic-> Render((pWnd-> GetDC()),   bounds.left,   bounds.bottom,   bounds.right   -   bounds.left,
        bounds.top   -   bounds.bottom,   0,   0,   cx,   cy,   NULL);

pic-> Release();
delete   data;

[解决办法]
pic-> Render((pWnd-> GetDC()-> GetSafeHdc())

热点排行