home *** CD-ROM | disk | FTP | other *** search
/ modiromppu / modiromppu.iso / PROGRAMS / ORGPACKS / DIDO4.ZIP / SOURCE.ZIP / DIDOLOGO.C < prev    next >
C/C++ Source or Header  |  1995-06-01  |  2KB  |  78 lines

  1.  
  2. // Logo routines
  3.  
  4. // Handle of logo window. 0 means: not open.
  5. HWND hlogo=0;
  6.  
  7. static int logow=499,logoh=429,logox=0,logoy=0;
  8. static HBRUSH yellowbrush;
  9.  
  10. // Register logo class
  11. void RegisterLogo(HINSTANCE hi)
  12. {
  13.     LRESULT CALLBACK LogoWndProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp);
  14.     WNDCLASS wc;
  15.     memset(&wc,0,sizeof(wc));
  16.     wc.style         = CS_HREDRAW | CS_VREDRAW;
  17.     wc.lpfnWndProc   = LogoWndProc;
  18.     wc.hInstance     = hi;
  19.     yellowbrush=CreateSolidBrush(RGB(255,255,0));
  20.     wc.hbrBackground = yellowbrush;
  21.     wc.lpszClassName = wc.lpszMenuName = "DIDOLOGO";
  22.     RegisterClass(&wc);
  23. }
  24.  
  25. // Toggle logo window
  26. void ToggleLogo(void)
  27. {
  28.     if (hlogo) {
  29.         DestroyWindow(hlogo);
  30.         return;
  31.         }
  32.     if (!logox) {
  33.         logox=GetSystemMetrics(SM_CXSCREEN)/2-logow/2;
  34.         logoy=GetSystemMetrics(SM_CYSCREEN)/2-logoh/2;
  35.         }
  36.     hlogo=CreateWindow("DIDOLOGO","Dido",
  37.             WS_POPUP|WS_BORDER|WS_VISIBLE,
  38.             logox,logoy,logow,logoh,0,0,hinst,0);
  39. }
  40.  
  41. // Windowprocedure for logo window
  42. #pragma argsused
  43. LRESULT CALLBACK LogoWndProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp)
  44. {
  45.     HDC dc;
  46.     PAINTSTRUCT ps;
  47.     static HBITMAP phb,hb;
  48.     static HDC mdc;
  49.  
  50.     switch(msg) {
  51.         case WM_CREATE:
  52.             break;
  53.         case WM_LBUTTONDOWN:
  54.             PostMessage(hw,WM_CLOSE,0,0);
  55.             break;
  56.         case WM_PAINT:
  57.             dc=BeginPaint(hw,&ps);
  58.             mdc=CreateCompatibleDC(dc);
  59.             hb=LoadBitmap(hinst,"DidoLogo");
  60.             if (!hb) MessageBox(0,"Logo bitmap load","Error",0);
  61.             phb=SelectObject(mdc,hb);
  62.             SelectObject(dc,GetStockObject(BLACK_BRUSH));
  63.             BitBlt(dc,0,0,logow,logoh, mdc,0,0, 0xB8074AL);
  64.             SelectObject(mdc,phb); DeleteDC(mdc); DeleteObject(hb);
  65.             EndPaint(hw,&ps);
  66.             break;
  67.         case WM_CLOSE:
  68.             DestroyWindow(hw);
  69.             break;
  70.         case WM_DESTROY:
  71.             DeleteObject(yellowbrush);
  72.             hlogo=0; // fallthru...
  73.         default:
  74.             return DefWindowProc(hw,msg,wp,lp);
  75.         }
  76.     return 0;
  77. }
  78.