SPLASH.CPP
资源名称:word.rar [点击查看]
上传用户:aakk678
上传日期:2022-07-09
资源大小:406k
文件大小:3k
源码类别:
界面编程
开发平台:
Visual C++
- // splash.cpp : implementation file
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1997 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
- #include "stdafx.h"
- #include "wordpad.h"
- #ifdef _DEBUG
- #undef THIS_FILE
- static char BASED_CODE THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CSplashWnd dialog
- BOOL CSplashWnd::Create(CWnd* pParent)
- {
- //{{AFX_DATA_INIT(CSplashWnd)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- if (!CDialog::Create(CSplashWnd::IDD, pParent))
- {
- TRACE0("Warning: creation of CSplashWnd dialog failedn");
- return FALSE;
- }
- return TRUE;
- }
- BOOL CSplashWnd::OnInitDialog()
- {
- CDialog::OnInitDialog();
- CenterWindow();
- // initialize the big icon control
- m_icon.SubclassDlgItem(IDC_BIGICON, this);
- m_icon.SizeToContent();
- return TRUE; // return TRUE unless you set the focus to a control
- }
- /////////////////////////////////////////////////////////////////////////////
- // CSplashWnd message handlers
- /////////////////////////////////////////////////////////////////////////////
- // CBigIcon
- BEGIN_MESSAGE_MAP(CBigIcon, CButton)
- //{{AFX_MSG_MAP(CBigIcon)
- ON_WM_DRAWITEM()
- ON_WM_ERASEBKGND()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CBigIcon message handlers
- #define CY_SHADOW 4
- #define CX_SHADOW 4
- void CBigIcon::SizeToContent()
- {
- m_bitmap.LoadBitmap(IDB_BITMAP48);
- BITMAP bm;
- m_bitmap.GetObject(sizeof(bm), &bm);
- m_sizeBitmap = CSize(bm.bmWidth, bm.bmHeight);
- // get system icon size
- // a big icon should be twice the size of an icon + shadows
- SetWindowPos(NULL, 0, 0, bm.bmWidth + CX_SHADOW + 4, bm.bmHeight + CY_SHADOW + 4,
- SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOZORDER);
- }
- void CBigIcon::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
- {
- CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
- ASSERT(pDC != NULL);
- CRect rect;
- GetClientRect(rect);
- int cxClient = rect.Width();
- int cyClient = rect.Height();
- // draw border around icon
- CPen pen;
- pen.CreateStockObject(BLACK_PEN);
- CPen* pPenOld = pDC->SelectObject(&pen);
- pDC->Rectangle(0, 0, cxClient-CX_SHADOW, cyClient-CY_SHADOW);
- if (pPenOld)
- pDC->SelectObject(pPenOld);
- // draw shadows around icon
- CBrush br;
- br.CreateStockObject(DKGRAY_BRUSH);
- rect.SetRect(cxClient-CX_SHADOW, CY_SHADOW, cxClient, cyClient);
- pDC->FillRect(rect, &br);
- rect.SetRect(CX_SHADOW, cyClient-CY_SHADOW, cxClient, cyClient);
- pDC->FillRect(rect, &br);
- // draw the bitmap contents
- CDC dcMem;
- if (!dcMem.CreateCompatibleDC(pDC))
- return;
- CBitmap* pBitmapOld = dcMem.SelectObject(&m_bitmap);
- if (pBitmapOld == NULL)
- return;
- pDC->BitBlt(2, 2, m_sizeBitmap.cx, m_sizeBitmap.cy, &dcMem, 0, 0, SRCCOPY);
- dcMem.SelectObject(pBitmapOld);
- }
- BOOL CBigIcon::OnEraseBkgnd(CDC*)
- {
- return TRUE; // we don't do any erasing...
- }
- /////////////////////////////////////////////////////////////////////////////