OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5888|回复: 2

STemwin 滚动条 SCROLLBAR 控件死机

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-8-21
在线时间
7 小时
发表于 2021-7-22 15:38:13 | 显示全部楼层 |阅读模式
1金钱
创建了一个界面,里面的控件比较多一页放不下。想使用SCROLLBAR 控件,可以上下滑动。
参照官方的 ScrollbarMove 例程,把所有控件地址存入一个数组,当检测到SCROLLBAR 控件
值改变时,在 for 循环里使用 WM_MoveWindow 移动所有控件的位置。
和其它控件一样采用间接创建 SCROLLBAR 控件方式(垂直)。
但是,滚动条触摸后,系统就死机。
请问这可能是哪里的问题 ?

回调函数如下

                case ID_SCROLLBAR_0: // Notifications sent by 'SCROLLBAR'
                        switch (NCode) {
                        case WM_NOTIFICATION_CLICKED:
                                break;
                        case WM_NOTIFICATION_RELEASED:
                                break;
                        case WM_NOTIFICATION_SCROLLBAR_ADDED:
                                break;
                        case WM_NOTIFICATION_VALUE_CHANGED:
                             hItem1 = WM_GetDialogItem(pMsg->hWin, ID_SCROLLBAR_0);       

                                 WM_GetScrollState(hItem1, &ScrollState);
                             if ( _y != ScrollState.v )
                                   {
                                      int y;
                                           for (y=1; y< ITEM_MAX; y++)
                                               {
                                                     WM_MoveWindow(hItem[y], 0, _y - ScrollState.v  );
                                                   }
                                 
                                       _y = ScrollState.v;
                                    }
                                break;
                        }
                        break;       

最佳答案

查看完整内容[请看2#楼]

用 SCROLLBAR_CreateAttached() 函数和 SCROLLBAR_CreateIndirect() 函数分别试过了,都不行。 后来使能了窗口的内存设备,还是不行。再后来尝试了只移动最后一个控件,似乎所有的控件都会跟着移动, 但是有重影。我用的时 F103 怀疑内存不够。 现在放弃了这种方式,改用翻页方式解决这个问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-8-21
在线时间
7 小时
 楼主| 发表于 2021-7-22 15:38:14 | 显示全部楼层

用 SCROLLBAR_CreateAttached() 函数和 SCROLLBAR_CreateIndirect() 函数分别试过了,都不行。
后来使能了窗口的内存设备,还是不行。再后来尝试了只移动最后一个控件,似乎所有的控件都会跟着移动,
但是有重影。我用的时 F103 怀疑内存不够。
现在放弃了这种方式,改用翻页方式解决这个问题。
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2016-12-20
在线时间
39 小时
发表于 2021-11-23 17:00:55 | 显示全部楼层
也想实现楼主一样的功能,可是结果也是一样的,不知道楼主实现了滚动效果没?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表