步骤都是自己积累整理的,有帮助可以点赞支持一下。
1、添加Picture Control控件
2、修改控件ID为IDC_PRIC
3、右键控件,添加变量
名称我设置的是m_pric
4、下载图片
//curl 实现
//参数 :图片URL
//strPath 为图片名称,会保存到项目路径下
bool DownloadUrlpic(string strURL)
{
string strPath = "qrcode.png";
size_t len0 = strURL.length();
int nmlen0 = MultiByteToWideChar(CP_ACP, 0, strURL.c_str(), len0 + 1, NULL, 0);
wchar_t* bufferURL = new wchar_t[nmlen0];
MultiByteToWideChar(CP_ACP, 0, strURL.c_str(), len0 + 1, bufferURL, nmlen0);
size_t len1 = strURL.length();
int nmlen1 = MultiByteToWideChar(CP_ACP, 0, strURL.c_str(), len1 + 1, NULL, 0);
wchar_t* bufferPath = new wchar_t[nmlen1];
MultiByteToWideChar(CP_ACP, 0, strPath.c_str(), len1 + 1, bufferPath, nmlen1);
HRESULT hr = URLDownloadToFile(NULL, bufferURL, bufferPath, 0, NULL);
if (hr != S_OK)
return false;
return true;
}
4、展示图片
void CWeChatToolDlg::ShowPicture()
{
USES_CONVERSION;
CImage QrPic;
QrPic.Load(_T(".\\qrcode.png"));//图片路径,这里是当前项目下的意思
CRect rect;
CWnd* pWnd = GetDlgItem(IDC_PRIC);//IDC_PRIC是控件ID、其他直接用即可
CDC* pDC = pWnd->GetDC();
pWnd->GetClientRect(&rect);
pDC->SetStretchBltMode(STRETCH_HALFTONE);
QrPic.Draw(pDC->m_hDC, rect);
ReleaseDC(pDC);
QrPic.Destroy();
//删除临时文件夹下的图片
DeleteFileA(".\\qrcode.png");
}
添加函数到按钮点击事件,看一下效果
void C测试exeDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
DownloadUrlpic("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F202109%2F11%2F20210911134617_4f6a7.thumb.1000_0.jpg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1655796866&t=762360e8d661c26bef0d10a62ae55aa0");
ShowPicture();
}
大美女哦!