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.
|
|
/************************************************************/ /* Windows Write, Copyright 1985-1992 Microsoft Corporation */ /************************************************************/
/* The file contains the message handler for the ruler. */
#define NOGDICAPMASKS
#define NOVIRTUALKEYCODES
#define NOWINSTYLES
#define NOSYSMETRICS
#define NOCLIPBOARD
#define NOMENUS
#define NOCTLMGR
#include <windows.h>
extern HBITMAP hbmNull;
extern HWND vhWndRuler; extern HDC vhDCRuler; extern HDC hMDCBitmap; extern HDC hMDCScreen; extern HBITMAP hbmBtn; extern HBITMAP hbmMark; extern HBITMAP hbmNullRuler; extern int dxpRuler; extern int dypRuler;
long FAR PASCAL RulerWndProc(hWnd, message, wParam, lParam) HWND hWnd; unsigned message; WORD wParam; LONG lParam; { /* This routine processes the messages sent to the ruler window. */
extern vfCloseFilesInDialog;
PAINTSTRUCT ps;
switch (message) { case WM_PAINT: /* Time for the ruler to draw itself. */ ResetRuler(); BeginPaint(hWnd, (LPPAINTSTRUCT)&ps); RulerPaint(FALSE, TRUE, TRUE); EndPaint(hWnd, (LPPAINTSTRUCT)&ps); RulerPaint(TRUE, FALSE, FALSE); break;
case WM_SIZE: /* We are saving the length of the ruler; we already know it's
height. */ dxpRuler = MAKEPOINT(lParam).x; break;
case WM_DESTROY: /* Destroy the ruler window. */ if (hMDCBitmap != NULL) { DeleteDC(hMDCBitmap); } if (hMDCScreen != NULL) { DeleteObject(SelectObject(hMDCScreen, hbmNull)); DeleteDC(hMDCScreen); } if (vhDCRuler != NULL) { DeleteObject(SelectObject(vhDCRuler, GetStockObject(SYSTEM_FONT))); SelectObject(vhDCRuler, GetStockObject(WHITE_BRUSH)); DeleteObject(SelectObject(vhDCRuler, GetStockObject(BLACK_PEN))); ReleaseDC(vhWndRuler, vhDCRuler); } if (hbmNullRuler != NULL) { DeleteObject(hbmNullRuler); hbmNullRuler = NULL; } vhDCRuler = hMDCScreen = hMDCBitmap = NULL; break;
case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: /* Process mouse events on the ruler. */ RulerMouse(MAKEPOINT(lParam)); break;
#ifdef DEBUG
case WM_RBUTTONDBLCLK: /* This the trap door that displays the "marquee" message. */ if (wParam & MK_SHIFT && wParam & MK_CONTROL) { RulerMarquee(); break; } #endif
default: /* All of the messages we are not interested in. */ return (DefWindowProc(hWnd, message, wParam, lParam)); break; }
if (vfCloseFilesInDialog) CloseEveryRfn( FALSE );
/* A window procedure should always return something. */ return (0L); }
|