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