- Code/Resource
- Windows Develop
- Linux-Unix program
- Internet-Socket-Network
- Web Server
- Browser Client
- Ftp Server
- Ftp Client
- Browser Plugins
- Proxy Server
- Email Server
- Email Client
- WEB Mail
- Firewall-Security
- Telnet Server
- Telnet Client
- ICQ-IM-Chat
- Search Engine
- Sniffer Package capture
- Remote Control
- xml-soap-webservice
- P2P
- WEB(ASP,PHP,...)
- TCP/IP Stack
- SNMP
- Grid Computing
- SilverLight
- DNS
- Cluster Service
- Network Security
- Communication-Mobile
- Game Program
- Editor
- Multimedia program
- Graph program
- Compiler program
- Compress-Decompress algrithms
- Crypt_Decrypt algrithms
- Mathimatics-Numerical algorithms
- MultiLanguage
- Disk/Storage
- Java Develop
- assembly language
- Applications
- Other systems
- Database system
- Embeded-SCM Develop
- FlashMX/Flex
- source in ebook
- Delphi VCL
- OS Develop
- MiddleWare
- MPI
- MacOS develop
- LabView
- ELanguage
- Software/Tools
- E-Books
- Artical/Document
GLOBALS.CPP
Package: MSDN_VC98.zip [view]
Upload User: bangxh
Upload Date: 2007-01-31
Package Size: 42235k
Code Size: 4k
Category:
Windows Develop
Development Platform:
Visual C++
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 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 "globals.h"
- /////////////////////////////////////////////////////////////////////////////
- // Cached system metrics, etc
- GLOBAL_DATA globalData;
- // Initialization code
- GLOBAL_DATA::GLOBAL_DATA()
- {
- // Cache various target platform version information
- DWORD dwVersion = ::GetVersion();
- nWinVer = (LOBYTE(dwVersion) << 8) + HIBYTE(dwVersion);
- bWin32s = (dwVersion & 0x80000000) != 0;
- bWin4 = (BYTE)dwVersion >= 4;
- bNotWin4 = 1 - bWin4; // for convenience
- bSmCaption = bWin4;
- bWin31 = bWin32s && !bWin4; // Windows 95 reports Win32s
- // Cached system metrics (updated in CWnd::OnWinIniChange)
- UpdateSysMetrics();
- // Border attributes
- hbrLtGray = ::CreateSolidBrush(RGB(192, 192, 192));
- hbrDkGray = ::CreateSolidBrush(RGB(128, 128, 128));
- ASSERT(hbrLtGray != NULL);
- ASSERT(hbrDkGray != NULL);
- // Cached system values (updated in CWnd::OnSysColorChange)
- hbrBtnFace = NULL;
- hbrBtnShadow = NULL;
- hbrBtnHilite = NULL;
- hbrWindowFrame = NULL;
- hpenBtnShadow = NULL;
- hpenBtnHilite = NULL;
- hpenBtnText = NULL;
- UpdateSysColors();
- // cxBorder2 and cyBorder are 2x borders for Win4
- cxBorder2 = bWin4 ? CX_BORDER*2 : CX_BORDER;
- cyBorder2 = bWin4 ? CY_BORDER*2 : CY_BORDER;
- // allocated on demand
- hStatusFont = NULL;
- hToolTipsFont = NULL;
- }
- // Termination code
- GLOBAL_DATA::~GLOBAL_DATA()
- {
- // cleanup standard brushes
- AfxDeleteObject((HGDIOBJ*)&hbrLtGray);
- AfxDeleteObject((HGDIOBJ*)&hbrDkGray);
- AfxDeleteObject((HGDIOBJ*)&hbrBtnFace);
- AfxDeleteObject((HGDIOBJ*)&hbrBtnShadow);
- AfxDeleteObject((HGDIOBJ*)&hbrBtnHilite);
- AfxDeleteObject((HGDIOBJ*)&hbrWindowFrame);
- // cleanup standard pens
- AfxDeleteObject((HGDIOBJ*)&hpenBtnShadow);
- AfxDeleteObject((HGDIOBJ*)&hpenBtnHilite);
- AfxDeleteObject((HGDIOBJ*)&hpenBtnText);
- // clean up objects we don't actually create
- AfxDeleteObject((HGDIOBJ*)&hStatusFont);
- AfxDeleteObject((HGDIOBJ*)&hToolTipsFont);
- }
- void GLOBAL_DATA::UpdateSysColors()
- {
- clrBtnFace = ::GetSysColor(COLOR_BTNFACE);
- clrBtnShadow = ::GetSysColor(COLOR_BTNSHADOW);
- clrBtnHilite = ::GetSysColor(COLOR_BTNHIGHLIGHT);
- clrBtnText = ::GetSysColor(COLOR_BTNTEXT);
- clrWindowFrame = ::GetSysColor(COLOR_WINDOWFRAME);
- AfxDeleteObject((HGDIOBJ*)&hbrBtnFace);
- AfxDeleteObject((HGDIOBJ*)&hbrBtnShadow);
- AfxDeleteObject((HGDIOBJ*)&hbrBtnHilite);
- AfxDeleteObject((HGDIOBJ*)&hbrWindowFrame);
- hbrBtnFace = ::CreateSolidBrush(clrBtnFace);
- ASSERT(hbrBtnFace != NULL);
- hbrBtnShadow = ::CreateSolidBrush(clrBtnShadow);
- ASSERT(hbrBtnShadow != NULL);
- hbrBtnHilite = ::CreateSolidBrush(clrBtnHilite);
- ASSERT(hbrBtnHilite != NULL);
- hbrWindowFrame = ::CreateSolidBrush(clrWindowFrame);
- ASSERT(hbrWindowFrame != NULL);
- AfxDeleteObject((HGDIOBJ*)&hpenBtnShadow);
- AfxDeleteObject((HGDIOBJ*)&hpenBtnHilite);
- AfxDeleteObject((HGDIOBJ*)&hpenBtnText);
- hpenBtnShadow = ::CreatePen(PS_SOLID, 0, clrBtnShadow);
- ASSERT(hpenBtnShadow != NULL);
- hpenBtnHilite = ::CreatePen(PS_SOLID, 0, clrBtnHilite);
- ASSERT(hpenBtnHilite != NULL);
- hpenBtnText = ::CreatePen(PS_SOLID, 0, clrBtnText);
- ASSERT(hpenBtnText != NULL);
- }
- void GLOBAL_DATA::UpdateSysMetrics()
- {
- // Device metrics for screen
- HDC hDCScreen = GetDC(NULL);
- ASSERT(hDCScreen != NULL);
- cxPixelsPerInch = GetDeviceCaps(hDCScreen, LOGPIXELSX);
- cyPixelsPerInch = GetDeviceCaps(hDCScreen, LOGPIXELSY);
- ReleaseDC(NULL, hDCScreen);
- }
- /////////////////////////////////////////////////////////////////////////////