Elemar DEV

Negócios, tecnologia e desenvolvimento

Loading Images (using MFC)

Olá. Tudo certo?!

No post anterior, mostrei um exemplo simples de programação “direta” com GDI Plus. Basicamente, o programa apresentado permite que o usuário selecione um arquivo para que este seja “pintado” no fundo de uma janela.

Agora, refaço o mesmo exemplo utilizando MFC.

#include <afxwin.h>
#include <afxext.h>

#include <afxstr.h>
#include <atlimage.h>

class CMouseDemoApp :
	public CWinApp
{
public:
	virtual BOOL InitInstance();
};

class CMainWindow :
	public CFrameWnd
{
	CImage m_pImage;

public:
	CMainWindow();

protected:
	afx_msg void OnPaint();
	afx_msg void OnRButtonDown(UINT, CPoint);
	DECLARE_MESSAGE_MAP();
};

BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
	ON_WM_PAINT ()
	ON_WM_RBUTTONDOWN ()
END_MESSAGE_MAP ()


BOOL CMouseDemoApp::InitInstance() {
	m_pMainWnd = new CMainWindow();
	m_pMainWnd->ShowWindow(m_nCmdShow);
	return TRUE;
}

CMainWindow::CMainWindow()
{
	Create(0, L"Loading bitmaps (using MFC)");
}

void CMainWindow::OnRButtonDown(UINT flags, CPoint point)
{
	TCHAR szFilters[] = _T ("JPEG Files (*.jpg)|*.jpg|All files (*.*)|*.*||");

	CFileDialog dlg (TRUE, _T ("jpg"), _T ("*.jpg"),
		OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);

	int result=dlg.DoModal();
	if(result==IDOK)
	{
		if (m_pImage)
			m_pImage.Destroy();

		m_pImage.Load(dlg.GetPathName());
	}
	InvalidateRect(NULL, TRUE);
}

void CMainWindow::OnPaint()
{
	CPaintDC dc(this);
	if (m_pImage)
		m_pImage.Draw(dc, NULL, 0);
}

CMouseDemoApp theApp;

Era isso.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Informação

Publicado às 24/03/2013 por em Post e marcado , .

Estatísticas

  • 703,062 hits
%d blogueiros gostam disto: