scrollbar控件问题请教!
今天上位机测试scrollbar控件http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_579575.JPG
程序刚运行 (原文件名:scrollbar初始.JPG)
http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_579576.JPG
点击鼠标之后的效果,注意scrollbar控件最右边的黑线 (原文件名:scrollbar点击之后.JPG)
请教如下问题:
1 rtgui_scrollbar_set_range(vbar,0,32);
rtgui_scrollbar_set_page_step(vbar,1);
rtgui_scrollbar_set_line_step(vbar,1);
set_range set_page_stpe,set_line_step分别设置了什么?
假如我的VIEW视图中要显示32项数据,但是视图只能显示10项,所以设置range为32
每次点一下鼠标滚动到下一项,所以要设置step为1,但是要设置page呢还设line呢?
2 点击鼠标之后scrollbar最右边有黑线,这种现象对吗?
3 视图中的scrollbar点击之后我要获取点击事件,之后更新视图中的内容,在什么地方处理呢?
假如我在info_search_view的事件处理函数中处理RTGUI_EVENT_PAINT事件,此时用DC函数更新数据
那么新的scrollbar的当前值如何获取呢?
此外这种处理方法对吗(视图中的scrollbar点击之后我要获取点击事件,之后更新视图中的内容)?
static rt_bool_t info_search_view_event_hanlder(rtgui_widget_t* widget, rtgui_event_t *event)
{
rt_bool_t result;
struct rt_dc* dc;
rtgui_rect_t rect;
char content;
if (event->type == RTGUI_EVENT_PAINT)
{
rtgui_view_event_handler(widget,event);
//下面是DC的处理
dc = rtgui_dc_begin_drawing(widget);
//如果不能正常获得DC,返回(如果控件或父控件是隐藏状态,DC是获取不成功的)
if (dc == RT_NULL)
return RT_FALSE;
//获取控件矩形
rtgui_widget_get_rect(RTGUI_VIEW(widget),&rect);
strcpy(content,"工号");
rect.x1=20;
rect.x2=rect.x1+40;
rect.y1=20;
rect.y2=rect.y1+20;
rtgui_dc_draw_text(dc,content,&rect);
rect.x1=rect.x2+20;
rect.x2=rect.x1+40;
strcpy(content,"名称");
rtgui_dc_draw_text(dc,content,&rect);
rect.x1=rect.x2+20;
rect.x2=rect.x1+40;
strcpy(content,"职位");
rtgui_dc_draw_text(dc,content,&rect);
rtgui_dc_end_drawing(dc);
}
else
{
/* 用默认的事件处理函数 */
returnrtgui_view_event_handler(widget, event);
}
return RT_FALSE;
} 1.
page --> 鼠标点击滚动条的空白处将以page的方式进行。
line --> 鼠标点击上、下按钮时将以line的方式进行。
2.
绘图还有些问题,以后会更正。
3.
有个on_scroll回调函数,在那个地方挂上就可以了。 回复【1楼】ffxz
1.
page --> 鼠标点击滚动条的空白处将以page的方式进行。
line --> 鼠标点击上、下按钮时将以line的方式进行。
2.
绘图还有些问题,以后会更正。
3.
有个on_scroll回调函数,在那个地方挂上就可以了。
-----------------------------------------------------------------------
第一个问题明白了,但是第三个可以说详细点吗?怎么挂呢? 回复【2楼】neilxiang
-----------------------------------------------------------------------
回复【2楼】neilxiang
回复【1楼】ffxz
1.
page --> 鼠标点击滚动条的空白处将以page的方式进行。
line --> 鼠标点击上、下按钮时将以line的方式进行。
2.
绘图还有些问题,以后会更正。
3.
有个on_scroll回调函数,在那个地方挂上就可以了。
-----------------------------------------------------------------------
第一个问题明白了,但是第三个可以说详细点吗?怎么挂呢?
-----------------------------------------------------------------------
明白了,有一个rtgui_scrollbar_set_onscroll()函数可以调用!谢谢! 请教一下楼主是用什么仿真的? VC++
RT-Thread/GUI是能够在VC++上进行开发调试的,然后代码不用修改就可以放到设备上运行。 VC++还不会用,会用一点点bcb 看他的好像是TKstudio 回复【6楼】lixuyongzd
vc++还不会用,会用一点点bcb 看他的好像是tkstudio
-----------------------------------------------------------------------
哈哈,他用的应该是VC++ 2005或2008等高级版本吧:-)
VC++么,调试简单些。对应到RT-Thread/GUI上则是不用烧写代码,开发起来比较容易 有可能,我就见过vc++ 6.0的界面,高版本的没见过 回复【4楼】lixuyongzd
-----------------------------------------------------------------------
VS2005 晕啊,我一直都在用RVMD3.8,早知道VC可用,就用VC了. 用的是X86平台的移植吗? 这是一套模拟环境,在SDL基础上模拟出了RT-Thread核心的API,这样基本上内核可用,文件系统可用,图形界面可用,(网络协议栈理论上也可用),缺点是finsh shell不可用。
因为是SDL基础上模拟的,SDL具备良好的夸平台特性,所以能够使用VC++直接开发,也能够在Linux下直接开发。
SDL - Simple DirectMedia Layer
http://www.libsdl.org/index.php 回复【12楼】ffxz
这是一套模拟环境,在sdl基础上模拟出了rt-thread核心的api,这样基本上内核可用,文件系统可用,图形界面可用,(网络协议栈理论上也可用),缺点是finsh shell不可用。
因为是sdl基础上模拟的,sdl具备良好的夸平台特性,所以能够使用vc++直接开发,也能够在linux下直接开发。
sdl - simple directmedia layer
http://www.libsdl.org/index.php
-----------------------------------------------------------------------
太热心了,反应好快,可惜都不懂,都是第一次听说,看来还是老老实实用STM32下载调试比较现实
页:
[1]