SplashWnd.cpp
Upload User: kairuinn
Upload Date: 2009-02-07
Package Size: 2922k
Code Size: 2k
Category:

Graph program

Development Platform:

Visual C++

  1. // SplashWnd.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "resource.h"
  5. //#include "Capturer.h"
  6. #include "SplashWnd.h"
  7. #define SPLASHRC IDB_SPLASH
  8. #define ALPHARC IDB_ALPHA
  9. // CSplashWnd
  10. IMPLEMENT_DYNAMIC(CSplashWnd, CWnd)
  11. CSplashWnd::CSplashWnd()
  12. {
  13. InitClass();
  14. strWndCls = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS, ::LoadCursor(NULL, IDC_ARROW), NULL, NULL);
  15. CreateEx(0, strWndCls, "SolidGraph CAD", WS_POPUP, Xoffset, Yoffset, dSplashSizeX, dSplashSizeY, NULL, NULL);
  16. }
  17. CSplashWnd::~CSplashWnd()
  18. {
  19. ::InvalidateRect(::GetDesktopWindow(), CRect(Xoffset,Yoffset,Xoffset + dSplashSizeX, Yoffset + dSplashSizeY) , FALSE);
  20. }
  21. BEGIN_MESSAGE_MAP(CSplashWnd, CWnd)
  22. ON_WM_PAINT()
  23. END_MESSAGE_MAP()
  24. // CSplashWnd message handlers
  25. void CSplashWnd::InitClass(void)
  26. {
  27. BITMAP SplashInfo;
  28. SplashBitmap.LoadBitmap(SPLASHRC);
  29. SplashBitmap.GetBitmap(&SplashInfo);
  30. dSplashSizeX = SplashInfo.bmWidth;
  31. dSplashSizeY = SplashInfo.bmHeight;
  32. DesktopSizeX = ::GetSystemMetrics(SM_CXSCREEN);
  33. DesktopSizeY = ::GetSystemMetrics(SM_CYSCREEN);
  34. Xoffset = (DesktopSizeX - dSplashSizeX) / 2;
  35. Yoffset = (DesktopSizeY - dSplashSizeY) / 2;
  36. }
  37. static void DrawBitmap(const CBitmap *bitmap, const CDC *pDC, const CPoint &point)
  38. {
  39. BITMAP bm; ((CBitmap*)bitmap)->GetBitmap(&bm);
  40. int w = bm.bmWidth; 
  41. int h = bm.bmHeight;
  42. CDC memDC; memDC.CreateCompatibleDC((CDC*)pDC);
  43. CBitmap *pBmp = memDC.SelectObject((CBitmap*)bitmap);
  44. ((CDC*)pDC)->BitBlt(point.x, point.y, w, h, &memDC, 0, 0, SRCCOPY);
  45. memDC.SelectObject(pBmp);
  46. }
  47. void CSplashWnd::OnPaint()
  48. {
  49. CPaintDC dc(this);
  50. DrawBitmap(&SplashBitmap,&dc,CPoint(0,0));
  51. }