硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1976|回复: 10
收起左侧

[emWin] 又来请教问题了,关于listview控件的。

[复制链接]

36

主题

142

回帖

250

积分

高级会员

积分
250
发表于 2017-5-19 09:26:43 | 显示全部楼层 |阅读模式
我画好了一个listview控件,我想知道我现在选中的那个或者聚焦在那一个行,应该怎么实现啊。我看了数据手册,只有行数和列数,没有返回选中的行数啊,求解答。
回复

使用道具 举报

0

主题

87

回帖

206

积分

高级会员

积分
206
发表于 2017-5-19 09:35:41 | 显示全部楼层
LISTVIEW_GetSel() Returns the index of the selected row.
LISTVIEW_GetSelCol() Returns the index of the selected column
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2017-5-19 09:45:28 | 显示全部楼层
LISTVIEW_GetSel() Returns the number of the selected item
我的描述怎么和你的不一样啊
LISTVIEW_GetSelCol() Returns the index of the selected column
还有这个函数我的数据手册找不到
我的数据手册是5.26
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2017-5-19 10:19:43 | 显示全部楼层
static void _cbSetMode(WM_MESSAGE* pMsg)
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    WM_HWIN hListview;
    switch (pMsg->MsgId)
    {
        case WM_CREATE:
            //创建“确定保存”按键
            _CreateButton(hWin, "OK",     GUI_ID_BUTTON0, 200, 380, 100, 45, 0);
            //创建“取消设置”按键
            _CreateButton(hWin, "CANNEL", GUI_ID_BUTTON1, 500, 380, 100, 45, 0);

             hListview=_CreateListview(hWin,GUI_ID_LISTVIEW0, 100, 100, 298, 158);

            break;
        case WM_PAINT:
            _PaintFrame();
            GUI_SetFont(&GUI_Font32_1);
            GUI_DispStringHCenterAt("CLASSROOM CONTROL SYSTEM",400, 0);
            break;
        case WM_NOTIFY_PARENT:
            Id = WM_GetId(pMsg->hWinSrc);
            NCode = pMsg->Data.v;
        
        
                switch(Id)
                {
                    case GUI_ID_LISTVIEW0:
                        switch(NCode)
                        {
                        case WM_NOTIFICATION_CLICKED:
                            break;
                        case WM_NOTIFICATION_RELEASED:
                            if(LISTVIEW_GetSel(hListview))
                            {
                                _DeleteFrame();                        
                                _CreateFrame(&_cbMainInterface);
                            }
                            else if(LISTVIEW_GetSel(hListview)==2)
                            {
                                _DeleteFrame();                        
                            _CreateFrame(&_cbMainInterface);
                            }
                            break;
                        }
               
                }
        default:
            WM_DefaultProc(pMsg);
            break;
    }

}
我这么写有什么错吗,运行的时候一点击listview  就报错。
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2017-5-19 10:34:29 | 显示全部楼层
if(LISTVIEW_GetSel(hListview)==2)这么写有错吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-19 11:14:19 | 显示全部楼层

回 老虎的菜 的帖子

老虎的菜:if(LISTVIEW_GetSel(hListview)==2)这么写有错吗 (2017-05-19 10:34) 
你的WM_HWIN hListview;是局部变量,退出函数就被释放掉了,你可以设置成全局变量或者前面加个static
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2017-5-19 11:38:48 | 显示全部楼层
太牛掰了,大神,这回好用了。你的意思是调用LISTVIEW_GetSel()函数的时候已经退出了_cbSetMode()函数,所以局部变量被释放掉了。那执行完LISTVIEW_GetSel()这个函数在调用回这个_cbSetMode()函数,这么理解正确吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-19 11:55:09 | 显示全部楼层

回 老虎的菜 的帖子

老虎的菜:太牛掰了,大神,这回好用了。你的意思是调用LISTVIEW_GetSel()函数的时候已经退出了_cbSetMode()函数,所以局部变量被释放掉了。那执行完LISTVIEW_GetSel()这个函数在调用回这个_cbSetMode()函数,这么理解正确吗? (2017-05-19 11:38) 
是的,局部变量是用的栈空间,是随时动态分配和释放的。

只要有操作,这个回调函数就会一直被调用。
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2017-5-19 12:49:45 | 显示全部楼层
谢谢了,局部变量什么的 基本的我都懂,stm32接触有几年了,就是对stemwin不懂,最近刚接触。最近这一个星期折腾stemwin 感觉对他有点入门了,O(∩_∩)O哈哈~
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-19 13:20:49 | 显示全部楼层

回 老虎的菜 的帖子

老虎的菜:谢谢了,局部变量什么的 基本的我都懂,stm32接触有几年了,就是对stemwin不懂,最近刚接触。最近这一个星期折腾stemwin 感觉对他有点入门了,O(∩_∩)O哈哈~ (2017-05-19 12:49) 
[s:130]
回复

使用道具 举报

0

主题

87

回帖

206

积分

高级会员

积分
206
发表于 2017-5-24 09:52:57 | 显示全部楼层

回 老虎的菜 的帖子

老虎的菜:LISTVIEW_GetSel() Returns the number of the selected item
我的描述怎么和你的不一样啊
LISTVIEW_GetSelCol() Returns the index of the selected column
还有这个函数我的数据手册找不到
我的数据手册是5.26
....... (2017-05-19 09:45) 
我看的是V5.30的版本  你调用这个函数应该就能用的
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-19 15:19 , Processed in 0.044015 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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