首先看一下Windows公共控件库,参阅;

https://blog.csdn.net/bcbobo21cn/article/details/106287676

https://blog.csdn.net/bcbobo21cn/article/details/106289420

这几个公共控件库的控件,基本使用原理是一样的;

首先创建,添加列头;完成之后如下;

设置各部位颜色,使用SendMessage实现;

插入具体项目信息;

代码;

#include <windows.h>
#include <commctrl.h>
#include "resource.h"LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);HINSTANCE hInst;
TCHAR szClassName[] = TEXT("listviewDemo");
HWND hListview;struct STUDENTINFO  {  char name[15];  int age;  char dept[20]; char job[20]; }; int WINAPI
WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)
{HWND hwnd;MSG messages;WNDCLASSEX wincl;hInst = hThisInstance;wincl.hInstance = hThisInstance;wincl.lpszClassName = szClassName;wincl.lpfnWndProc = WindowProcedure;wincl.style = CS_DBLCLKS;wincl.cbSize = sizeof (WNDCLASSEX);wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);wincl.hCursor = LoadCursor (NULL, IDC_ARROW);wincl.lpszMenuName = MAKEINTRESOURCE (IDC_LISTVIEWDEMO);wincl.cbClsExtra = 0;wincl.cbWndExtra = 0;wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);if (!RegisterClassEx (&wincl))return 0;hwnd = CreateWindowEx (0,szClassName,TEXT("listviewDemo"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,300,500,HWND_DESKTOP,NULL,hThisInstance,NULL);ShowWindow (hwnd, nFunsterStil);while (GetMessage (&messages, NULL, 0, 0)){TranslateMessage(&messages);DispatchMessage(&messages);}return messages.wParam;
}LRESULT CALLBACK
WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{PAINTSTRUCT ps;HDC hdc;RECT rt;int ret;int i;struct STUDENTINFO stu[6] = {  { "无忌", "20", "技术部", "工程师" },  { "三丰", "80", "总经理", "总经理" },  { "远桥", "40", "技术部", "经理" },  { "敏敏", "18", "客服部", "经理" },  { "芷若", "18", "行政部", "经理" },  { "小昭", "16", "行政部", "前台" }  };   switch (message){case WM_COMMAND:switch (LOWORD(wParam)){case IDM_ABOUT:MessageBox (hwnd, TEXT ("listviewDemo v1.0\nCopyright (C) 2020\n by bo"),TEXT ("listviewDemo"), MB_OK | MB_ICONINFORMATION);break;case IDM_EXIT:DestroyWindow(hwnd);break;default:return DefWindowProc(hwnd, message, wParam, lParam);              }break;case WM_CREATE:hListview = CreateWindowEx(NULL, TEXT("SysListView32"), NULL, LVS_REPORT | WS_CHILD | WS_VISIBLE, 0, 0,300, 400, hwnd, NULL, hInst, NULL);LV_COLUMN lvc;lvc.mask = LVCF_TEXT | LVCF_WIDTH;lvc.pszText = "姓名";lvc.cx = 80;SendMessage(hListview, LVM_INSERTCOLUMN, 0, (long)&lvc);lvc.pszText = "年龄";lvc.cx = 80;SendMessage(hListview, LVM_INSERTCOLUMN, 1, (long)&lvc);lvc.mask = LVCF_TEXT | LVCF_WIDTH;lvc.pszText = "部门";lvc.cx = 80;SendMessage(hListview, LVM_INSERTCOLUMN, 2, (long)&lvc);lvc.pszText = "职务";lvc.cx = 80;SendMessage(hListview, LVM_INSERTCOLUMN, 3, (long)&lvc);SendMessage(hListview, LVM_SETTEXTCOLOR, 0, RGB(255, 255, 255));SendMessage(hListview, LVM_SETBKCOLOR, 0, RGB(135, 160, 135));SendMessage(hListview, LVM_SETTEXTBKCOLOR, 0, RGB(60, 100, 130));          LVITEM vitem;  vitem.mask = LVIF_TEXT;  for (i = 0; i < 6; i++)  {  //先添加项再设置子项内容   vitem.pszText = stu[i].name;  vitem.iItem = i;  vitem.iSubItem = 0;  ListView_InsertItem(hListview, &vitem);  // 设置子项  vitem.iSubItem = 1;  vitem.pszText = stu[i].age;  ListView_SetItem( hListview, &vitem);  vitem.iSubItem = 2;  vitem.pszText = stu[i].dept;  ListView_SetItem(hListview, &vitem);vitem.iSubItem = 3;  vitem.pszText = stu[i].job;  ListView_SetItem(hListview, &vitem);  }  break;case WM_PAINT:hdc = BeginPaint(hwnd, &ps);                 GetClientRect(hwnd, &rt);           EndPaint(hwnd, &ps);break;case WM_DESTROY:PostQuitMessage (0);break;default:return DefWindowProc (hwnd, message, wParam, lParam);}return 0;
}

先用CreateWindowEx创建控件,类名为"SysListView32";创建风格这些枚举值可以网上查;

其他操作都是通过定义相应结构体对象并赋值,然后用SendMessage实现;

ListView_InsertItem,ListView_SetItem,这两个是预定义宏,它们也是调用SendMessage,传递结构体地址;

添加列头用结构体LV_COLUMN,添加具体信息用结构体LVITEM;

工程;

资源和头文件;

#include "resource.h"
#include <windows.h>/
//
// Menu
//IDC_LISTVIEWDEMO MENU
BEGINPOPUP "&File"BEGINMENUITEM "E&xit",                    IDM_EXITENDPOPUP "&Help"BEGINMENUITEM "&About ...",             IDM_ABOUTEND
END
#define  IDM_EXIT        10001
#define     IDM_ABOUT       10002#define    IDC_LISTVIEWDEMO        10101
#define     IDD_ABOUTBOX    10102

结构体第二个成员,int age,赋值时赋值为 "20",这么也构建出了exe;可以自己改;

Win32 ListView控件基本使用相关推荐

  1. Android使用ListView控件问题

    Android使用ListView控件问题: The application has stopped unexpectedly, please try again. 开发环境:android 1.6 ...

  2. ASP.NET ListView控件基本操作

    1.前台代码 View Code 1 <asp:ListView ID="lvDepartment" runat="server" DataKeyName ...

  3. 【转】 ASP.NET 3.5中使用新的ListView控件

    ASP.NET中新的ListView控件为显示和CURD数据库操作提供了基于模板的布局,使之成为一项极好的方式,建立以数据为中心的Web应用程序. 当你编写以用户为中心的应用程序时,总需要某种形式的数 ...

  4. C# ListView控件显示表格(自适应宽度),添加 Checkbox,删除选择项,选中颜色和鼠标滑过背景变色

    本文转载自:http://www.liangshunet.com/ca/201309/586362553.htm 亮术网 2020-03-07 本网原创 DataGridView控件功能十分强大,显示 ...

  5. ListView控件的基本使用(方式一:使用ArrayAdapter适配器实现)

    ListView绝对可以称得上是Android中最常用的控件之一,几乎所有的应用程序都会用到它.由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候 ...

  6. ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)

    目录: ListView控件学习系列1-了解ListView控件 ListView控件学习系列2-编辑ListView ListView控件学习系列3-ListView选择,排序,分页 ListVie ...

  7. VB.net实现从ListView控件中异地获取文本内容源代码

    对于一些VB6工程代码来说,需要完成从VB到VB.net的转换,在转换过程中需要注意很多内容,利用VB.net的直接转换功能很少能完全成功,需要我们付出很大的努力. 下面的VB.net代码实现从其他应 ...

  8. listview显示mysql数据_C#在listview控件中显示数据库数据

    一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...

  9. 【小技巧积累】设置ListView控件的Item不在Tab键导航序列中

    在默认情况下,ListView控件的Item在Tab键导航序列中,就算我们将ListView控件的IsTabStop属性设置为False.而有些情况下,我们需要按Tab键时能跳过ListView控件. ...

最新文章

  1. 解读eXtremeComponents代码结构--转载
  2. Ubuntu16.04 安装 OpenMPI4.0.0
  3. jQuery 选择器汇总-思维导图-选择器
  4. POS时机未到,POW强攻是实现全球货币的正确道路
  5. 2个css特效冲突了怎么办_患上类风湿病怎么办?2个方法拿走不谢
  6. php findall,fleaphp常用函数findAll方法的使用和示例
  7. 大数据_Hbase-内容回顾和补充---Hbase工作笔记0018
  8. paip. 'QObject::QObject(const QObject)' is private问题的解决.
  9. 使用canvas绘制数字雨
  10. cad图形不见了怎么办_CAD软件常见问题解答,CAD中的工具栏不见了怎么办?如何清理图形...
  11. 【微信小程序】-授权获取微信绑定手机号两种方案
  12. Ubuntu 14.04 下的MAC OS X 主题安装
  13. 关于解决无线拨号(PPPOE)上网的若干问题(WISP)
  14. Qt实现的简单记账本软件
  15. 【智能安全车载中控系统】(一)概览
  16. 记云服务器中挖矿病毒与防范
  17. 太神了!世界上最著名的菲尔人格测试!
  18. 佛山计算机专业刁,计算机应用基础 高职计算机大类专业 刁爱军项目策划方案汇报 原始.pptx...
  19. PDF电子签章,用鼠标拖动印章到指定的位置, 一种在网页PDF中电子签章定位方法
  20. 一键U盘装系统-【万能U盘启动盘制作工具】

热门文章

  1. 利用iptables来配置linux禁止所有端口登陆和开放指定端口
  2. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
  3. 用JAVASCRIPT实现静态对象、静态方法和静态属性
  4. Python 技术篇-用os库实现本地文件重命名实例演示
  5. 2018 Spring Team Contest B
  6. Python标准库01 正则表达式 (re包)
  7. 特征值和特征向量(Eigenvalues and Eigenvectors)
  8. R语言-画edcf图、直方图、正态概率图,计算分位数(任意分位)
  9. 第二十三讲 解一阶微分方程组
  10. BZOJ3336: Uva10572 Black and White(插头Dp)