Mercurial > foo_out_sdl
diff foosdk/sdk/libPPUI/CMiddleDragOverlay.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foosdk/sdk/libPPUI/CMiddleDragOverlay.h Mon Jan 05 02:15:46 2026 -0500 @@ -0,0 +1,41 @@ +#pragma once + +#include "win32_op.h" +#include "win32_utility.h" + +class CMiddleDragOverlay : public CWindowImpl<CMiddleDragOverlay,CWindow, CWinTraits<WS_POPUP, WS_EX_LAYERED> > { +public: + DECLARE_WND_CLASS_EX(TEXT("{61BFC7AD-C00F-4CEA-8E6A-EA22E01F43F9}"),0,(-1)); + + enum { + ColorKey = 0xc0ffee + }; + + BEGIN_MSG_MAP_EX(CMiddleDragOverlay) + MESSAGE_HANDLER(WM_CREATE,OnCreate); + MSG_WM_ERASEBKGND(OnEraseBkgnd) + MSG_WM_PAINT(OnPaint) + END_MSG_MAP() + + void ShowHere(CPoint pt); +private: + LRESULT OnCreate(UINT,WPARAM,LPARAM,BOOL&) { + ::SetLayeredWindowAttributes(*this,ColorKey,0,LWA_COLORKEY); + return 0; + } + BOOL OnEraseBkgnd(CDCHandle dc) { + CRect rcClient; + WIN32_OP_D(GetClientRect(rcClient)); + dc.FillSolidRect(rcClient, ColorKey); + return TRUE; + } + void OnPaint(CDCHandle dc) { + if (dc) { + Paint(dc); + } else { + CPaintDC pdc(*this); + Paint(pdc.m_hDC); + } + } + void Paint(CDCHandle dc); +};
