我一直在网上搜索有关 win32 API 的不同内容,但似乎所有相关信息都相当稀疏。
我正在创建一个显示项目列表的简单窗口,但是我想以表格样式格式显示每个项目的不同数据列,其中用户可能可以调整不同列的大小宽度。
如果可能的话,我还希望能够在代码中更改不同行的背景颜色,即普通的白色、红色、黄色或绿色。
用户还可以右键单击不同的行,并能够在它们上调用函数,或将数据复制到剪贴板(但这部分是不同的故事)。
现在,我找到了可以放置在窗口、按钮和右键菜单中的列表查看器对象(?)...但我不知道如何使用 Win32 API 制作表格。除了窗口本身之外,我什至还没有真正阅读过任何其他内容的背景颜色。
我是否应该使用一个不同的、更好的框架来实现此目的,或者是否有一些我遗漏的功能或项目?对于这个想法的所有帮助或指导将不胜感激......
我正在使用 MSVC++ 来做...我正在做的所有事情。
最佳答案
使用Windows API和标准控件ListView,您可以使用LVS_REPORT样式制作表格
文档链接 - 不幸的是没有代码:( -
我发现这篇好文章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/