123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- // ResizableMsgSupport.h: some declarations to support custom resizable wnds
- //
- /////////////////////////////////////////////////////////////////////////////
- //
- // This file is part of ResizableLib
- // https://github.com/ppescher/resizablelib
- //
- // Copyright (C) 2000-2015 by Paolo Messina
- // mailto:ppescher@hotmail.com
- //
- // The contents of this file are subject to the Artistic License 2.0
- // http://opensource.org/licenses/Artistic-2.0
- //
- // If you find this code useful, credits would be nice!
- //
- /////////////////////////////////////////////////////////////////////////////
- #if !defined(AFX_RESIZABLEMSGSUPPORT_H__INCLUDED_)
- #define AFX_RESIZABLEMSGSUPPORT_H__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- typedef struct tagRESIZEPROPERTIES
- {
- // wether to ask for resizing properties every time
- BOOL bAskClipping;
- BOOL bAskRefresh;
- // otherwise, use the cached properties
- BOOL bCachedLikesClipping;
- BOOL bCachedNeedsRefresh;
- // initialize with valid data
- tagRESIZEPROPERTIES() : bAskClipping(TRUE), bAskRefresh(TRUE), bCachedLikesClipping(FALSE), bCachedNeedsRefresh(TRUE) {}
- } RESIZEPROPERTIES, *PRESIZEPROPERTIES, *LPRESIZEPROPERTIES;
- typedef struct tagCLIPPINGPROPERTY
- {
- BOOL bLikesClipping;
- // initialize with valid data
- tagCLIPPINGPROPERTY() : bLikesClipping(FALSE) {}
- } CLIPPINGPROPERTY, *PCLIPPINGPROPERTY, *LPCLIPPINGPROPERTY;
- typedef struct tagREFRESHPROPERTY
- {
- BOOL bNeedsRefresh;
- RECT rcOld;
- RECT rcNew;
- // initialize with valid data
- tagREFRESHPROPERTY() : bNeedsRefresh(TRUE) {}
- } REFRESHPROPERTY, *PREFRESHPROPERTY, *LPREFRESHPROPERTY;
- // registered message to communicate with the library
- extern const UINT WMU_RESIZESUPPORT;
- // if the message is implemented the returned value must be non-zero
- // the default window procedure returns zero for unhandled messages
- // wParam is one of the following RSZSUP_* values, lParam as specified
- enum ResizeSupport
- {
- RSZSUP_QUERYPROPERTIES = 101, // lParam = LPRESIZEPROPERTIES
- RSZSUP_LIKESCLIPPING = 102, // lParam = LPCLIPPINGPROPERTY
- RSZSUP_NEEDSREFRESH = 103, // lParam = LPREFRESHPROPERTY
- RSZSUP_SHEETPAGEEXHACK = 104, // lParam = HWND (source prop.page)
- };
- /////////////////////////////////////////////////////////////////////////////
- // utility functions
- inline BOOL Send_QueryProperties(HWND hWnd, LPRESIZEPROPERTIES pResizeProperties)
- {
- return (0 != SendMessage(hWnd, WMU_RESIZESUPPORT,
- RSZSUP_QUERYPROPERTIES, (LPARAM)pResizeProperties));
- }
- inline BOOL Send_LikesClipping(HWND hWnd, LPCLIPPINGPROPERTY pClippingProperty)
- {
- return (0 != SendMessage(hWnd, WMU_RESIZESUPPORT,
- RSZSUP_LIKESCLIPPING, (LPARAM)pClippingProperty));
- }
- inline BOOL Send_NeedsRefresh(HWND hWnd, LPREFRESHPROPERTY pRefreshProperty)
- {
- return (0 != SendMessage(hWnd, WMU_RESIZESUPPORT,
- RSZSUP_NEEDSREFRESH, (LPARAM)pRefreshProperty));
- }
- inline void Post_SheetPageExHack(HWND hWndSheet, HWND hWndPage)
- {
- PostMessage(hWndSheet, WMU_RESIZESUPPORT,
- RSZSUP_SHEETPAGEEXHACK, (LPARAM)hWndPage);
- }
- #endif // !defined(AFX_RESIZABLEMSGSUPPORT_H__INCLUDED_)
|