STM32
直播中

李春梅

7年用户 1765经验值
私信 关注
[问答]

STM32使用stemwin中的listview,如何加listview宽水平和垂直的滚动条?

问题一:我使用LISTVIEW_SetFixed函数只能固定标题框下面的数据,却不能固定标题框,
           LISTVIEW_SetFixed(hItem,0);
          LISTVIEW_SetFixed(hItem,1);
          LISTVIEW_SetFixed(hItem,2);
          LISTVIEW_SetFixed(hItem,3);
问题二:如何加listview宽水平和垂直的滚动条,像图3DROPDOWN一样宽的下拉滚动条
           我尝试过改变数据字体,但没有效果

回帖(1)

遇鱼余的小白

2024-5-10 17:00:43
问题一:在STM32使用STMemWin中的ListView时,要固定标题框,可以使用LISTVIEW_SetHeaderHeight函数来设置标题框的高度。例如:

```c
int headerHeight = 20; // 设置标题框的高度为20像素
LISTVIEW_SetHeaderHeight(hItem, headerHeight);
```

问题二:要在ListView中添加水平和垂直滚动条,可以使用以下步骤:

1. 首先,确保已经包含了必要的头文件:

```c
#include "GUI.h"
#include "GUI_Private.h"
#include "WM.h"
#include "LISTVIEW.h"
```

2. 创建一个滚动条窗口,用于实现滚动功能:

```c
void CreateScrollbar(WM_HWIN hWin, int orientation) {
  SCROLLBAR_Handle hScrollbar;
  int x, y, width, height;

  if (orientation == SCROLLBAR_HORIZONTAL) {
    x = 0;
    y = WM_GetWindowSizeY(hWin) - SCROLLBAR_HEIGHT;
    width = WM_GetWindowSizeX(hWin);
    height = SCROLLBAR_HEIGHT;
  } else {
    x = WM_GetWindowSizeX(hWin) - SCROLLBAR_WIDTH;
    y = 0;
    width = SCROLLBAR_WIDTH;
    height = WM_GetWindowSizeY(hWin);
  }

  hScrollbar = SCROLLBAR_CreateEx(x, y, width, height, hWin, WM_CF_SHOW, 0);
  SCROLLBAR_SetNumItems(hScrollbar, 100); // 设置滚动条的项目数量
  SCROLLBAR_SetPageSize(hScrollbar, 10); // 设置滚动条的页面大小
}
```

3. 在ListView创建后,调用CreateScrollbar函数为ListView添加滚动条:

```c
WM_HWIN hWin; // 你的窗口句柄
LISTVIEW_Handle hListView;
CreateScrollbar(hWin, SCROLLBAR_HORIZONTAL);
CreateScrollbar(hWin, SCROLLBAR_VERTICAL);

hListView = LISTVIEW_CreateEx(10, 10, 100, 100, WM_UNATTACHED, WM_CF_SHOW, GUI_ID_LISTVIEW, LISTVIEW_CF_AUTOSCROLL, 0, GUI_INVALID_COLOR, GUI_INVALID_COLOR, GUI_INVALID_COLOR, GUI_INVALID_COLOR, 0, 0, 0);
```

4. 在需要滚动ListView时,可以使用LISTVIEW_ScrollTo函数:

```c
int scrollX = 10; // 水平滚动的距离
int scrollY = 5; // 垂直滚动的距离
LISTVIEW_ScrollTo(hListView, scrollX, scrollY);
```

这样,你就可以在ListView中添加水平和垂直滚动条,并实现滚动功能了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分