123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- // ImageView.cpp : CImageView クラス インプリメンテ�`ションファイル
- // Date 2006/05/17 Ver. 1.22 Psytec Inc.
- #include "stdafx.h"
- #include "QR_Image.h"
- #include "MainFrm.h"
- #include "ImageView.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CImageView
- IMPLEMENT_DYNCREATE(CImageView, CView)
- CImageView::CImageView()
- {
- }
- CImageView::~CImageView()
- {
- }
- BEGIN_MESSAGE_MAP(CImageView, CView)
- //{{AFX_MSG_MAP(CImageView)
- ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
- ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut)
- ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy)
- ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
- ON_WM_ERASEBKGND()
- ON_WM_CONTEXTMENU()
- ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
- ON_WM_LBUTTONDOWN()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CImageView 宙鮫
- void CImageView::OnDraw(CDC* pDC)
- {
- CRect rcClient;
- GetClientRect(&rcClient);
- CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
- if (pMainFrame->m_bDataEncoded)
- {
- int nSrcSize = pMainFrame->m_nSymbleSize;
- int nDstSize = min(rcClient.Width(), rcClient.Height());
- //咀葎 互堀晒匯稀壓坪贋坪起薦恂岻朔壓鮫中燕幣
- CDC* pWorkDC = new CDC;
- pWorkDC->CreateCompatibleDC(NULL);
- CBitmap* pWorkBitmap = new CBitmap;
- pWorkBitmap->CreateBitmap(nDstSize, nDstSize, 1, 1, NULL);
- CBitmap* pOldBitmap = pWorkDC->SelectObject(pWorkBitmap);
- pWorkDC->StretchBlt(0, 0, nDstSize, nDstSize, pMainFrame->m_pSymbleDC, 0, 0, nSrcSize, nSrcSize, SRCCOPY);
- pDC->BitBlt(0, 0, nDstSize, nDstSize, pWorkDC, 0, 0, SRCCOPY);
- pWorkDC->SelectObject(pOldBitmap);
- delete pWorkBitmap;
- delete pWorkDC;
- }
- else
- {
- pDC->FillSolidRect(&rcClient, RGB(255, 255, 255));
- }
- }
- BOOL CImageView::OnEraseBkgnd(CDC* pDC)
- {
- CRect rcClient;
- GetClientRect(&rcClient);
- // 喘易畠中与懲憲催燕幣曝囃參翌
- if (rcClient.Width() != rcClient.Height())
- {
- if (rcClient.Width() > rcClient.Height())
- rcClient.left += rcClient.Height();
- else
- rcClient.top += rcClient.Width();
- pDC->FillSolidRect(&rcClient, RGB(255, 255, 255));
- }
- return TRUE;
- }
- /////////////////////////////////////////////////////////////////////////////
- // CImageView �\僅
- #ifdef _DEBUG
- void CImageView::AssertValid() const
- {
- CView::AssertValid();
- }
- void CImageView::Dump(CDumpContext& dc) const
- {
- CView::Dump(dc);
- }
- #endif //_DEBUG
- /////////////////////////////////////////////////////////////////////////////
- // CImageView メッセ�`ジ ハンドラ
- /////////////////////////////////////////////////////////////////////////////
- // 喇報炎汽似嘔囚議貧性暇汽燕幣
- void CImageView::OnContextMenu(CWnd* pWnd, CPoint point)
- {
- CMenu Menu;
- // 揃暇汽(彿坿)
- Menu.LoadMenu(IDR_IMAGEMENU);
- // 絹廁�pop up �暇汽函誼
- CMenu* pPopupMenu = Menu.GetSubMenu(0);
- // 暇汽�朕議嗤丼/涙丼晒
- pPopupMenu->EnableMenuItem(ID_EDIT_COPY, ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_bDataEncoded ? MF_ENABLED : MF_GRAYED);
- // 燕幣貧性暇汽
- pPopupMenu->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTBUTTON, point.x, point.y, this);
- }
- /////////////////////////////////////////////////////////////////////////////
- // メニュ�`��朕厚仟
- void CImageView::OnUpdateEditUndo(CCmdUI* pCmdUI)
- {
- pCmdUI->Enable(FALSE);
- }
- void CImageView::OnUpdateEditCut(CCmdUI* pCmdUI)
- {
- pCmdUI->Enable(FALSE);
- }
- void CImageView::OnUpdateEditCopy(CCmdUI* pCmdUI)
- {
- pCmdUI->Enable(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_bDataEncoded);
- }
- void CImageView::OnUpdateEditPaste(CCmdUI* pCmdUI)
- {
- pCmdUI->Enable(FALSE);
- }
- // 暇汽糞佩
- void CImageView::OnEditCopy()
- {
- ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->CopyImage();
- }
- /////////////////////////////////////////////////////////////////////////////
- //OLE 溶慧糞�
- void CImageView::OnLButtonDown(UINT nFlags, CPoint point)
- {
- if (((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_bDataEncoded)
- {
- ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->CopyImage(&m_OleDataSource);
- }
- CView::OnLButtonDown(nFlags, point);
- }
|