关于VS2012上在MFC中使用GDI+的配置问题

我找了许多教程,都按着过程做了,编译也没问题,出来了默认的对话框。可是当我添加了一些GDI+的绘图函数以后,虽然没错,但怎么也显示不出来应该有的图像,这到底是为什么啊,怎... 我找了许多教程,都按着过程做了,编译也没问题,出来了默认的对话框。
可是当我添加了一些GDI+的绘图函数以后,虽然没错,但怎么也显示不出来应该有的图像,这到底是为什么啊,怎么办?
展开
 我来答
夕心木18
2013-09-02 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:32.6万
展开全部
这还得看代码,我用的是vs2010 没遇到过类似问题,不一定是配置问题。
更多追问追答
追问
我就在OnInitDialog()加了简单的三句话,
Graphics myg(GetDC()->m_hDC);
Image myImage(L"D:\\ZHY1.png");
myg.DrawImage(&myImage, 10, 10);
按理说应该没问题的啊。。
追答
void Cpicture2Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);
// 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialog::OnPaint();
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP是背景位图对应的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,bitmap.bmWidth,bitmap.bmHeight,&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);//这里我让显示区域矩形宽高和图像宽高一致
}
}

这是我曾经写的,你用这种方法拷贝bitmap试试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式