BOOL ListView_CancelEditLabel(
HWND hwnd
);
参数说明:
- hwnd:指向列表视图控件的句柄。
函数返回值:
- 如果成功,返回 TRUE;如果失败,返回 FALSE。
这个函数用于取消当前正在进行的编辑标签操作。通常在用户正在编辑标签时,可以通过某些条件或操作来取消编辑,这时可以调用 ListView_CancelEditLabel 函数。
以下是一个简单的示例:
#include <Commctrl.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_CREATE:
{
// 创建列表视图控件
HWND hListView = CreateWindowEx(0, WC_LISTVIEW, L"",
WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
10, 10, 300, 200, hwnd, NULL, GetModuleHandle(NULL), NULL);
if (hListView) {
// 向列表视图添加列...
LVCOLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_WIDTH;
lvc.cx = 100;
lvc.pszText = L"Column 1";
ListView_InsertColumn(hListView, 0, &lvc);
// 向列表视图添加项...
LVITEM lvi;
lvi.mask = LVIF_TEXT;
lvi.pszText = L"Item 1";
ListView_InsertItem(hListView, &lvi);
// 开始编辑标签
ListView_EditLabel(hListView, 0);
}
break;
}
case WM_COMMAND:
{
if (LOWORD(wParam) == IDCANCEL) {
// 取消编辑标签
HWND hListView = GetDlgItem(hwnd, IDC_LISTVIEW);
ListView_CancelEditLabel(hListView);
}
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
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;
}
// 注册窗口类
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, WindowProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
L"ListView_CancelEditLabel Example", NULL };
RegisterClassEx(&wc);
// 创建主窗口
HWND hwnd = CreateWindow(wc.lpszClassName, L"ListView_CancelEditLabel Example",
WS_OVERLAPPEDWINDOW, 100, 100, 400, 300,
NULL, NULL, wc.hInstance, NULL);
// 显示主窗口
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// 注销窗口类
UnregisterClass(wc.lpszClassName, wc.hInstance);
return 0;
}
在这个例子中,当用户开始编辑标签后,可以通过按下 "ESC" 键或某个取消按钮等,触发 WM_COMMAND 消息并调用 ListView_CancelEditLabel 函数,从而取消编辑标签。
转载请注明出处:http://www.zyzy.cn/article/detail/24703/Win32 API/Commctrl.h/ListView_CancelEditLabel