ListView_Arrange 是 Win32 API 中用于重新排列列表视图控件中的项的函数,该函数位于 Commctrl.h 头文件中。
BOOL ListView_Arrange(
  HWND hwnd,
  UINT flag
);

参数说明:
  •  hwnd:指向列表视图控件的句柄。

  •  flag:指定重新排列项的标志。可以是以下之一:

  - LVA_ALIGNLEFT: 通过将项左对齐来排列它们。
  - LVA_ALIGNTOP: 通过将项顶部对齐来排列它们。
  - LVA_DEFAULT: 根据控件的当前排列风格进行排列。

函数返回值:
  •  如果成功,返回 TRUE;如果失败,返回 FALSE。


这个函数用于重新排列列表视图中的项,以适应新的排列风格。通常在需要调整视图布局时使用。

以下是一个简单的示例:
#include <Commctrl.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    // 初始化通用控件库
    INITCOMMONCONTROLSEX icex;
    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icex.dwICC = ICC_LISTVIEW_CLASSES; // 或其他适当的标志
    if (!InitCommonControlsEx(&icex)) {
        // 初始化失败处理
        return 1;
    }

    // 创建窗口并显示
    HWND hwnd = CreateWindowEx(0, WC_LISTVIEW, L"ListView Arrange Example",
                                WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
                                400, 300, NULL, NULL, hInstance, NULL);

    if (hwnd) {
        // 向列表视图添加项...
        
        // 重新排列列表视图的项
        ListView_Arrange(hwnd, LVA_DEFAULT);

        // 处理消息循环等
        MSG msg;
        while (GetMessage(&msg, NULL, 0, 0)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

    return 0;
}

在这个例子中,ListView_Arrange 被调用,以重新排列列表视图的项。这可以在需要重新排列项时调用,以适应新的排列风格。


转载请注明出处:http://www.zyzy.cn/article/detail/24702/Win32 API/Commctrl.h/ListView_Arrange