winapi - 使用 Win32 API 创建表

标签 winapi visual-c++ frameworks

我一直在网上搜索有关 win32 API 的不同内容,但似乎所有相关信息都相当稀疏。

我正在创建一个显示项目列表的简单窗口,但是我想以表格样式格式显示每个项目的不同数据列,其中用户可能可以调整不同列的大小宽度。

如果可能的话,我还希望能够在代码中更改不同行的背景颜色,即普通的白色、红色、黄色或绿色。

用户还可以右键单击不同的行,并能够在它们上调用函数,或将数据复制到剪贴板(但这部分是不同的故事)。

现在,我找到了可以放置在窗口、按钮和右键菜单中的列表查看器对象(?)...但我不知道如何使用 Win32 API 制作表格。除了窗口本身之外,我什至还没有真正阅读过任何其他内容的背景颜色。

我是否应该使用一个不同的、更好的框架来实现此目的,或者是否有一些我遗漏的功能或项目?对于这个想法的所有帮助或指导将不胜感激......

我正在使用 MSVC++ 来做...我正在做的所有事情。

最佳答案

使用Windows API和标准控件ListView,您可以使用LVS_REPORT样式制作表格

文档链接 - 不幸的是没有代码:( -

About List-View Controls

我发现这篇好文章Windows Programmierung: List View 解释是德语,但谷歌翻译和代码应该足以理解它。从文章中,创建窗口:

#include "commctrl.h"

InitCommonControls();
hwndList = CreateWindow(WC_LISTVIEW, "", 
         WS_VISIBLE|WS_BORDER|WS_CHILD | LVS_REPORT | LVS_EDITLABELS, 
         10, 10, 300, 100, 
         hWnd, (HMENU)ID_LIST, hInst, 0);

然后解释如何在方法中创建列

int CreateColumn(HWND hwndLV, int iCol, char *Text, int iWidth)

如何插入项目(一列)

int CreateItem(HWND hwndList, char *Text)

或插入两列项目

int Create2ColItem(HWND hwndList, char *Text1, char *Text2)

等等...

关于winapi - 使用 Win32 API 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966330/

相关文章:

ios - 如何创建 cocoapod 框架并向其中添加文件?

Node.js 框架和 Express.js

c - RegSetValueEx 返回 ERROR_SUCCESS 但没有值显示

c++ - 无法使用boost object_pool使用移动构造函数构造对象

c++ - VC++ 中没有运行时检查的生成代码

c# - DLL 加载通知

javascript - Backbone Marionette,在所有 View 中设置全局 BeforeRender

python - 切换打印机托盘

windows - 错误 RC2247 : Symbol name too long (winnt. h)

c++ - 当转换为 PUCHAR 并打印到控制台时,硬编码字符串给出的结果与从控制台读取的字符串不同