ppescher / resizablelib Goto Github PK
View Code? Open in Web Editor NEWA set of MFC classes to easily make resizable windows
License: Other
A set of MFC classes to easily make resizable windows
License: Other
The function InitThemeSettings in ResizableVersion.cpp can be simplyfied on Vista and later, because GetThemeAppProperties and IsAppThemed is available:
`
...
if (!IsAppThemed())
return;
real_ThemeSettings = GetThemeAppProperties();
...
`
in vs 2019 ,CFrameWndEx is parent class for CMainFrame
should it be IDC_ICON1?
I want to create a dynamic Resizable library .dll instead of the static Resizable library .lib and want to use AFX_EXT_CLASS to make the task simple, but get error LNK2005 ... already defined in ... / fatal error LNK1169: one or more multiply defined symbols found.
Is it possible to move some inline functions e.g.
CResizableDialog::GetResizableWnd and all CResizableLayout::AddAnchor / AddAllOtherAnchors / RemoveAnchor
from the header to the cpp file?
Library version 1.3 used CSize
for anchors, and version 1.4 introduced a special class tagAnchor
.
But this new class duplicates properties of CSize
.
The declaration of tagAnchor
class could be replaced with just one line, and it also would keep a meaningful name for anchors:
typedef CSize ANCHOR;
#define ANCHOR CSize
CPoint
class also could be used in the same way, but it has x, y
member names instead of cx, cy
. Technically, replacement with CPoint
could be a breaking change, though I am unaware of any user code that directly manipulated anchor values, so only library code needed adjustments. At least, all my compilations were successful.
moving the dialog (resizablelib\ResizableDialog) demo application from a monitor (main) with 150% scaling to a monitor (secondary) with 100% scaling and the demo application has "Per Monitor High DPI Aware V2" enabled.
The application is started from 150% monitor.
With the setting "No theme" is is partly visible.
Used Manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
<!-- https://blogs.windows.com/windowsdeveloper/2017/04/04/high-dpi-scaling-improvements-desktop-applications-windows-10-creators-update/ -->
<!-- MFC: Although we ve added per-monitor DPI scaling support to Win32, WPF and WinForms, MFC does not natively support this functionality. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- Declare this application as DPI aware and Per-Monitor V2 DPI ready -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- https://docs.microsoft.com/en-us/windows/desktop/sbscs/application-manifests -->
<!-- https://stackoverflow.com/questions/46428510/enhanced-system-dpi-scaling-with-vs2017 -->
<windowsSettings>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
<!-- Un-comment the line below to enable GDI-scaling in this project. This will enable text -->
<!-- to render crisply in DPI-unaware contexts -->
<!-- <gdiScaling xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">true</gdiScaling> -->
</windowsSettings>
</application>
</assembly>
moving the dialog (resizablelib\ResizableDialog) demo application (e.g. dialog New features or Test Dialog) from a monitor (main) with 150% scaling to a monitor (secondary) with 100% scaling and the demo application has "Per Monitor High DPI Aware V2" enabled.
The application is started from 150% monitor.
In case of 64-bit platform handle is 8 bytes long, while X
format expects 4 bytes for an unsigned value.
At least zX
format is required for size_t
(or MS-specific I64X
in 64-bit code).
8 bytes may need 16 hexadecimal digits, but output should not be truncated according to language standards.
Possibly the line should be changed and then commented out as all other TRACE
macros in the library code.
//TRACE("ComboLBox: 0x%08zX\n", pWnd->m_hWnd);
When I use AddAllOtherAnchors() in ResizableFormView, the grip is not set to its new position when I resize the form. Not using AddAllOtherAnchors fixes this (but then I must specify all top left anchors). I fixed it a bit dirty by switching the order of ArrangeLayout() and UpdateSizeGrip() in CResizableFormView::OnSize,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.