ListView_InsertColumn 函数是 Windows API 中用于在列表视图控件中插入新列的函数。该函数定义在 Commctrl.h 头文件中,用于操作 Windows 上的列表视图控件。

以下是 ListView_InsertColumn 函数的一般格式:
int ListView_InsertColumn(
  HWND       hwnd,
  int        iCol,
  const LVCOLUMN *pcol
);

  •  参数 hwnd 是列表视图控件的句柄。

  •  参数 iCol 是要插入的新列的索引。

  •  参数 pcol 是一个指向 LVCOLUMN 结构的指针,包含有关新列的信息。


LVCOLUMN 结构的定义如下:
typedef struct tagLVCOLUMN {
  UINT      mask;
  int       fmt;
  int       cx;
  LPTSTR    pszText;
  int       cchTextMax;
  int       iSubItem;
  int       iImage;
  int       iOrder;
  int       cxMin;
  int       cxDefault;
  int       cxIdeal;
} LVCOLUMN, *PLVCOLUMN;

  •  mask 是一个标志集,指定结构中哪些字段包含有效数据。

  •  fmt 是一个标志集,指定列的对齐和显示格式。

  •  cx 是列的宽度。

  •  pszText 是列的标题文本。

  •  cchTextMax 是 pszText 缓冲区的最大字符数。

  •  iSubItem 是子项索引。

  •  iImage 是与列关联的图像索引。

  •  iOrder 是列的显示顺序。

  •  cxMin、cxDefault 和 cxIdeal 是列的最小宽度、默认宽度和理想宽度。


函数返回一个整数,表示新列的索引。如果插入失败,返回 -1。

以下是一个简单的示例代码,演示如何使用 ListView_InsertColumn 函数:
#include <windows.h>
#include <commctrl.h>

int main() {
    // 初始化 Common Controls Library
    INITCOMMONCONTROLSEX icex;
    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icex.dwICC = ICC_LISTVIEW_CLASSES;
    InitCommonControlsEx(&icex);

    // 创建主窗口
    HWND hwndMain = CreateWindowEx(0, WC_LISTVIEW, L"ListView_InsertColumn Example",
        WS_OVERLAPPEDWINDOW | LVS_REPORT, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
        NULL, NULL, GetModuleHandle(NULL), NULL);

    // 添加一列以便能够看到列表视图的显示
    LVCOLUMN lvColumn;
    lvColumn.mask = LVCF_TEXT | LVCF_WIDTH;
    lvColumn.pszText = L"Column 1";
    lvColumn.cx = 200;
    ListView_InsertColumn(hwndMain, 0, &lvColumn);

    // 显示窗口
    ShowWindow(hwndMain, SW_SHOWNORMAL);
    UpdateWindow(hwndMain);

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

    return 0;
}

在这个示例中,创建了一个带有一个列的列表视图控件。ListView_InsertColumn 函数用于添加列,设置列的标题文本为 "Column 1",宽度为 200。


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