Coder Social home page Coder Social logo

resizablelib's People

Contributors

0ric1 avatar blonder avatar irwir avatar ppescher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

resizablelib's Issues

InitThemeSettings can be simplyfied on Vista and later ...

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();
...
`

Inline functions problem with AFX_EXT_CLASS

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?

A question about the anchor class

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.

HighDPI problem: SizeGrip of dialogs vanishes, when ...

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>

HighDPI problem: size of controls do not resize correctly when ...

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.

Format and argument size in TRACE

TRACE("ComboLBox: 0x%08X\n", pWnd->m_hWnd);

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);

Grip is top left anchored when I use AddAllOtherAnchors() in ResizableFormView

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,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.