2025-11-28 00:35:46 +09:00

73 lines
1.8 KiB
C++

//////////////////////////////////////////////////////////////////////
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
// TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (C) 2003 Microsoft Corporation. All rights reserved.
//
// PopupWindow.h
//
// CProeprtyPopupWindow
//
//////////////////////////////////////////////////////////////////////
#ifndef RANGEFROMPOINT_H
#define RANGEFROMPOINT_H
class CExtentMonitorTextService;
class CRangeFromPointViewer
{
public:
CRangeFromPointViewer(CExtentMonitorTextService *pTextService, WCHAR *psz, COLORREF cr);
~CRangeFromPointViewer();
HWND CreateWnd();
void Show(RECT *prc);
void Hide();
void OnPaint(HWND hwnd, HDC hdc);
void OnSetCursor(HWND hwnd, WPARAM wParam, LPARAM lParam);
BOOL IsShown()
{
if (!IsWindow(_hwnd))
return FALSE;
return IsWindowVisible(_hwnd);
}
static BOOL StaticInit();
static LRESULT CALLBACK _WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static void _SetThis(HWND hwnd, LPARAM lParam)
{
SetWindowLongPtr(hwnd, GWLP_USERDATA,
(LONG_PTR)((CREATESTRUCT *)lParam)->lpCreateParams);
}
static CRangeFromPointViewer *_GetThis(HWND hwnd)
{
return (CRangeFromPointViewer *)GetWindowLongPtr(hwnd, GWLP_USERDATA);
}
HWND _hwnd;
static TCHAR _szWndClass[];
CExtentMonitorTextService *_pTextService;
WCHAR _sz[80];
COLORREF _cr;
RECT _rc;
BOOL _fIsRect;
RECT _rcRoundNearest;
BOOL _fIsRectRoundNearest;
RECT _rcNearest;
BOOL _fIsRectNearest;
};
#endif RANGEFROMPOINT_H