Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//////////////////////////////////////////////////////////////////////////
//
// dlgapp.h
//
// This file contains the specification of the DlgApp class.
//
// (C) Copyright 1997 by Microsoft Corporation. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////
#pragma once
#include "autorun.h"
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
class CDlgApp { private: HINSTANCE m_hInstance; // application instance
HWND m_hwnd; // window handle
CDataSource m_DataSrc; // info from ini and registry about display items
HFONT m_hfontTitle; // Font used to draw the title
HFONT m_hfontMenu; // Font used to draw the menu items
HFONT m_hfontBody; // Font used to draw the body
HBRUSH m_hbrMenuItem; // Brush used to draw background of menu items
HBRUSH m_hbrMenuBorder; // Brush used to draw the dark area behind the menu items
HBRUSH m_hbrRightPanel; // Brush used to draw the background of the right panel
COLORREF m_crMenuText; // Color of text on non-selected menu items (ususally the same as m_crNormalText)
COLORREF m_crNormalText; // Color of text in right panel body and selected menu items
COLORREF m_crTitleText; // Color of the title text
COLORREF m_crSelectedText; // Color of menu items that have been previouly launched.
HCURSOR m_hcurHand;
int m_cxClient; int m_cyClient; int m_cxLeftPanel; int m_cyBottomOfMenuItems;
int m_iItems;
HDC m_hdcTop; // Memory DC used for storing and painting the top image
TCHAR m_szDefTitle[MAX_PATH]; TCHAR m_szDefBody[1024]; TCHAR m_szCheckText[MAX_PATH];
bool m_bHighContrast; // true if high contrast options should be used
bool m_bLowColor; // true if we are in 256 or less color mode.
HPALETTE m_hpal; // palette to use if in palette mode
int m_iColors; // -1, 16, or 256 depending on the color mode we are in.
struct tagBkgndInfo { HBITMAP hbm; int cx; int cy; } m_aBkgnd[4];
public: CDlgApp(); ~CDlgApp();
void Register(HINSTANCE hInstance); bool InitializeData(); void Create(int nCmdShow); void MessageLoop();
private: static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
// Window Messages
LRESULT OnCreate(HWND hwnd); LRESULT OnDestroy(); LRESULT OnActivate(WPARAM wParam); LRESULT OnPaint(HDC hdc); LRESULT OnEraseBkgnd(HDC hdc); LRESULT OnLButtonDown(int x, int y, DWORD fwKeys); LRESULT OnMouseMove(int x, int y, DWORD fwKeys); LRESULT OnSetCursor(HWND hwnd, int nHittest, int wMouseMsg); LRESULT OnCommand(int wID); LRESULT OnQueryNewPalette(); LRESULT OnPaletteChanged(HWND hwnd); LRESULT OnDrawItem(UINT iCtlID, LPDRAWITEMSTRUCT pdis); LRESULT _OnChangeScreen();
// helper functions
BOOL SetColorTable(); BOOL CreateWelcomeFonts(HDC hdc); BOOL CreateBrandingBanner(); BOOL LoadBkgndImages(); BOOL AdjustToFitFonts(); void _CreateMenu(); void _DestroyMenu(); };
|