flat assembler
Message board for the users of flat assembler.

Index > Projects and Ideas > Layered struct editor

Author
Thread Post new topic Reply to topic
Roman



Joined: 21 Apr 2012
Posts: 2129
Roman 18 Nov 2024, 18:07
Windows 10
Editor to create Layered struct.
Layered struct parts:
struct,! mean set method,_ mean get,@ mean macro method.
https://rutube.ru/video/c8b4c6be4d8d7080126030de2008a8d3/

New: any size for string. And listStrings


Description:
Download
Filename: persAI_gen.rar
Filesize: 11.04 KB
Downloaded: 144 Time(s)

Description:
Download
Filename: layeredStructOps.rar
Filesize: 62.29 KB
Downloaded: 485 Time(s)

Post 18 Nov 2024, 18:07
View user's profile Send private message Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 2129
Roman 05 Sep 2026, 09:10
layeredStructOps not work in Windows 11.
Today i try run layeredStructOps and get empty window(no buttons and SysTreeView).
Why ?

In windows 10 layeredStructOps work fine.

Code:
section '.rsrc' resource readable
WC_TREEVIEW     equ   "SysTreeView32"
btnY equ        480
btnSzX equ      36
directory       RT_DIALOG, dialogs

resource        dialogs, 0, LANG_NEUTRAL, MainWindow
;+TVS_CHECKBOXES
dialog          MainWindow, 'MainDLG', 70, 10, 400, 400, WS_VISIBLE+WS_CAPTION+WS_SYSMENU
dialogitem      WC_TREEVIEW, '', 1, 10, 10, 170*2, 108*4, WS_CHILD+WS_BORDER+TVS_LINESATROOT+TVS_SHOWSELALWAYS+TVS_HASLINES+TVS_EDITLABELS+TVS_HASBUTTONS
dialogitem      'button', 'getStruct',      2000, 10*8-3,           btnY+32, btnSzX+4, 15, WS_VISIBLE
dialogitem      'button', 'delet sel',      2001, 10*4-10,           btnY+17, btnSzX+8, 15, WS_VISIBLE
dialogitem      'button', 'renameSel',      2002, 10*8-3,           btnY+17, btnSzX+4, 15, WS_VISIBLE
dialogitem      'button', 'insert',      2003, 3,           btnY+17, btnSzX-9, 15, WS_VISIBLE
;combobox
dialogitem      'combobox', '',      200, 3,           btnY-37, btnSzX*6-10, 12, WS_VISIBLE
;dialogitem      'combobox', '',      201, 3+210,           btnY-37, btnSzX*4-7, 12, WS_VISIBLE ;rename element
dialogitem      'combobox', '',      201, 3+116,           btnY+19, btnSzX*4-7, 12, WS_VISIBLE
dialogitem      'combobox', '',      202, 3+116,           btnY+34, btnSzX*4-7, 12, WS_VISIBLE
;ops connection struct
dialogitem      'button', 'add opInt4',     20, 3,           btnY-17, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add opVc4',      30, 10*4,        btnY-17, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add ptrLb',      35, 10*8-3,        btnY-17, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add ptrFun',     36, 10*12-6,        btnY-17, btnSzX+2, 15, WS_VISIBLE
;simple values
dialogitem      'button', 'add dd',      2, 3,           btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add dw',      3, 10*4,        btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add db',      4, 10*8-3,      btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add string',  5, 10*12-3*2,   btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add ptrv',    6, 10*16-3*3,   btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add vec2',    7, 10*20-3*4,   btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add vec3',    8, 10*24-3*5,   btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add vec4',    9, 10*28-3*6,   btnY, btnSzX, 15, WS_VISIBLE
dialogitem      'button', 'add fun',     10, 10*32-3*7,  btnY, btnSzX, 15, WS_VISIBLE

dialogitem      'button', ' file to ptr',    19, 10*28-3*6,   btnY+32, btnSzX+9, 15, WS_VISIBLE

dialogitem      'button', 'fix count',      300, 210,           btnY-38, btnSzX+6, 15, WS_VISIBLE
;static size for string,array,ptrv
dialogitem      'static', 'size:',      7770, 273,           btnY-35, btnSzX, 15, WS_VISIBLE
dialogitem      'combobox', '',      203, 289,           btnY-37, btnSzX*2-11, 120, CBS_AUTOHSCROLL+CBS_DROPDOWN+WS_VSCROLL+WS_VISIBLE+CBS_HASSTRINGS
enddialog          
Post 05 Sep 2026, 09:10
View user's profile Send private message Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 2129
Roman 05 Sep 2026, 09:15
In windows 11 somthing wrong with metrics.
I set btnY equ 480 to btnY equ 4
and see all buttons.

Why ?

My display 1920x1080

And in Windows 11 i not see SysTreeView32.
In windows 10 SysTreeView32 show fine.
Post 05 Sep 2026, 09:15
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4602
Location: vpcmpistri
bitRAKE 05 Sep 2026, 20:21
Put this file, IDEStruct.manifest next to executable.
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <assemblyIdentity 
    type="win32" 
    name="Legacy.Application" 
    version="1.0.0.0" 
    processorArchitecture="*"
  />

  <!-- 1. Enable Modern Common Controls (Visual Styles) -->
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="*"
        publicKeyToken="6595b64144ccf1df"
        language="*"
      />
    </dependentAssembly>
  </dependency>

  <!-- 2. Disable Automatic DPI Scaling (Declare DPI Awareness) -->
  <asmv3:application>
    <asmv3:windowsSettings>
      <!-- Legacy Windows 7/8 awareness -->
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
      <!-- Windows 10/11 awareness -->
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>    
... the problem is DPI scaling (automatic in Win11) and common controls versioning (Win10 makes bad assumption that was good for your program).
Post 05 Sep 2026, 20:21
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 2129
Roman 06 Sep 2026, 03:30
O ! I tryed invoke SetProcessDPIAware. Yes its work.
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setprocessdpiaware


Remember ! In windows 11 you always must do SetProcessDPIAware !
Post 06 Sep 2026, 03:30
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2026, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.