Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Reorder and resize "COLUMNHEADER" elements
#4
Example with listview control in Computer Management -> Task Scheduler. Orders and resizes column headers using drag-and-drop. All column headers must be completely visible (no horizontal scrollbar).

C# code:
//var order = new string[] { "Author", "Created", "Last Run Result", "Last Run Time", "Name", "Next Run Time", "Status", "Triggers" };
var order = new (string name, int width)[] { ("Author", 80), ("Created", 120), ("Last Run Result", 160), ("Last Run Time", 80), ("Name", 120), ("Next Run Time", 160), ("Status", 80), ("Triggers", 120) };

var w = wnd.find(1, "Computer Management", "MMCMainFrame").Activate();
if (!w.IsMaximized) {
    w.ShowMaximized(noAnimation: true);
    500.ms();
}
var ctrl = w.Child(1, "***elmName Header Control", "SysHeader32");
for (int i = order.Length; --i >= 0; ) {
    //move
    var e = ctrl.Elm["COLUMNHEADER", order[i].name].Find(0);
    mouse.drag(e, ctrl, x2: 1, y2: 8, speed: 0);
    //resize
    e = ctrl.Elm["COLUMNHEADER", order[i].name].Find(0); //find again because Rect of the old element may be not updated after moving
    int dx = order[i].width - e.Rect.Width;
    if (dx != 0) mouse.drag(e, ^0, .5f, dx, 0, speed: 0);
}


Messages In This Thread
RE: Reorder and resize "COLUMNHEADER" elements - by Gintaras - 03-26-2022, 06:00 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)