c++ - Listview C++ win32 API - 示例不工作
问题描述
我正在尝试使用 win32 api 在 C++ 中创建一个列表视图,但是 mdsn 上提供的代码给了我一个错误。
HWND CreateListView (HWND hwndParent)
{
INITCOMMONCONTROLSEX icex; // Structure for control initialization.
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
RECT rcClient; // The parent window's client area.
GetClientRect (hwndParent, &rcClient);
// Create the list-view window in report view with label editing enabled.
HWND hWndListView = CreateWindow(WC_LISTVIEW, //ERROR red line under create window
L"",
WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
0, 0,
rcClient.right - rcClient.left,
rcClient.bottom - rcClient.top,
hwndParent,
(HMENU)IDM_CODE_SAMPLES, //ERROR IDM CODE SAMPLES undefined
g_hInst, //ERROR
NULL);
return (hWndListView);
}
这个例子是来自 mdsn 的海峡,我不知道为什么它不起作用。我得到 IDM_CODE_SAMPLES 未定义,并且 createwindow 有问题。请帮助我完成这项工作,这将非常有帮助。
解决方案
IDM_CODE_SAMPLES
是您要分配给控件的 ID。您可以将符号定义为数值,也可以直接使用数值(例如,选择 100)。如果您想引用特定控件,则 ID 很有用,尽管它HWND
与 ID 一样有用。
g_hInst
大概是一个类型为 的全局变量HMODULE
,从 初始化WinMain
。如果您不想使用全局变量,则可以GetModuleHandle(nullptr)
在其位置调用,前提是您编译的是 .exe 而不是 .dll。
在学习 C++ 中 Win32 编程简介时,您将获得很多有用的信息。
推荐阅读
- r - 有没有办法根据松散的不同来选择行?
- c++ - 模板值和参数包的 C++ 概念
- r - Montecarlo Simulation using R(如何“翻译”R的Stata代码)
- python - Discord.py:将元素分配给变量时列表索引超出范围
- memory-management - 三.js内存分配&工作流问题
- python - 为什么我收到 Pyinstaller FileNotFoundError: [Errno 2] No such file or directory:
- c# - ContextMenuStrip.Show 一半时间不工作
- javascript - 使用 CSS 样式的 JavaScript 打印 div
- python - 无法在 python 3.9 中导入我自己的模块
- java - 在 schema.sql 中创建表与通过 H2 控制台创建表的奇怪行为?