WTL Picture Control显示图片

1、在对话框上新建一个Picture Control ID为:IDC_STATIC_IMG

2、添加图片资源ID:IDB_BITMAP1(选中Bitmap点击导入,选择bmp图片资源)


实现:

CWindow wnd = this->GetDlgItem(IDC_STATIC_IMG);
	CStatic *pImg = (CStatic*)&wnd;
	pImg->ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE);

	hBitmap = AtlLoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1));

	pImg->SetBitmap(hBitmap);
也可以使用CBitmap
CBitmap bitmap;
m_picture.Create("",WS_CHILD  and  WS_VISIBLE  and  SS_CENTERIMAGE  and  SS_BITMAP,
CRect(0,0,180,160),this,IDC_STATIC1);
bitmap.LoadBitmap(IDB_BITMAP1);
m_picture.SetBitmap(bitmap.Detach());

源码:

MainDlg.h

// MainDlg.h : interface of the CMainDlg class
//
/

#pragma once

class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
	enum { IDD = IDD_MAINDLG };

	BEGIN_MSG_MAP(CMainDlg)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
	END_MSG_MAP()

// Handler prototypes (uncomment arguments if needed):
//	LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
//	LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
//	LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)

	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
private:
	HBITMAP hBitmap;
};
MainDlg.cp

// MainDlg.cpp : implementation of the CMainDlg class
//
/

#include "stdafx.h"
#include "resource.h"

#include "MainDlg.h"

LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	// center the dialog on the screen
	CenterWindow();

	// set icons
	HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON));
	SetIcon(hIcon, TRUE);
	HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
	SetIcon(hIconSmall, FALSE);
	

	CWindow wnd = this->GetDlgItem(IDC_STATIC_IMG);
	CStatic *pImg = (CStatic*)&wnd;
	pImg->ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE);

	hBitmap = AtlLoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1));

	pImg->SetBitmap(hBitmap);

	return TRUE;
}

LRESULT CMainDlg::OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	DeleteObject(hBitmap);
	EndDialog(wID);
	return 0;
}


这里只显示bmp图片有点局限性,如何显示png,jpg图片呢?

CImage img;
CWindow wnd = this->GetDlgItem(IDC_STATIC_IMG);
CStatic *pImg = (CStatic*)&wnd;
pImg->ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE);
img.Load(TEXT("ing.png"));
pImg->SetBitmap(img.Detach());


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值