- 浏览: 42883 次
- 性别:
- 来自: 西安
最新评论
自定义列表框,可以调整高度。 收藏
我是用的自定义列表控件实现的。继承了CAknSingleStyleListBox。
//------------------------------------------------ ----头文件------------------------------------------------
#ifndef __CMySingleStyleListBox__
#define __CMySingleStyleListBox__
#include
#include
class CControl;
class CFbsBitmap;
class CMaxIcon; //是我自定义的图片类。
class CMySingleStyleListBox : public CAknSingleStyleListBox
{
public:
CMySingleStyleListBox(CControl * aControl);
virtual ~CMySingleStyleListBox();
protected:
virtual void CreateItemDrawerL();
CControl * iControl;
RArray iSelectRecordID; //在列表中显示的记录ID
CMaxIcon * iBack; //背景颜色
CMaxIcon * iSelectedBack; //选中的背景
};
class CMyColumnListBoxItemDrawer : public CColumnListBoxItemDrawer
{
public:
CMyColumnListBoxItemDrawer(MTextListBoxModel* aTextListBoxModel,
const CFont* aFont, CColumnListBoxData* aColumnData,
CEikListBox* aListBox, CControl * aControl, CMaxIcon * aBack,
CMaxIcon * aSelBack);
virtual ~CMyColumnListBoxItemDrawer();
virtual void DrawActualItem(TInt aItemIndex, const TRect& aActualItemRect,
TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool,
TBool aItemIsSelected) const;
void SetFindBox(CAknSearchField* aFindBox);
CAknSearchField* iFindBox;
CEikListBox* iOwner;
CControl * iControl;
RArray iSelectRecordID; //在列表中显示的记录ID
MAknsSkinInstance* skin;
//图片
CMaxIcon * iBack; //背景颜色
CMaxIcon * iSelectedBack; //选中的背景
};
#endif
//------------------------------------------------ ----定义文件------------------------------------------------
#include
#include
//
#include "manager/Control.h"
#include "manager/Helper.h"
#include "manager/MaxIcon.h"
#include "control/MySingleStyleListBox.h"
////////////////////////////////////////////////// ////////////////////
// Construction/Destruction
////////////////////////////////////////////////// ////////////////////
#define MEM_FREE(a) if(a){delete a; a=NULL;}
CMySingleStyleListBox::CMySingleStyleListBox(CCont rol * aControl)
{
iControl = aControl;
iBack = NULL;
iSelectedBack = NULL;
}
void CMySingleStyleListBox::CreateItemDrawerL()
{
CColumnListBoxData* columnData = CColumnListBoxData::NewL();
EnableDragEvents();
const CFont* myFont;
myFont = CEikonEnv::Static()->DenseFont();
CEikListBox *aListBox = this;
//加载图片
CMaxIconManager* pIconMgr = iControl->iIconManager;
//背景
iBack = pIconMgr->GetMaxIcon(CMaxIconManager::EListBack);
iSelectedBack = pIconMgr->GetMaxIcon(CMaxIconManager::EListCur);
iItemDrawer = new (ELeave) CMyColumnListBoxItemDrawer(Model(), myFont,
columnData, aListBox, iControl, iBack, iSelectedBack);
//iItemDrawer->SetItemCellSize(TPoint(100,100));
//iItemDrawer->SetItemCellSize(TSize(360,100));
iItemDrawer->SetItemCellSize(TSize(360 , 100));
//View()->SetItemHeight(100) ;
}
CMySingleStyleListBox::~CMySingleStyleListBox()
{
}
// MySingleStyleListBox.cpp: implementation of the CMyColumnListBoxItemDrawer class.
//
////////////////////////////////////////////////// ////////////////////
CMyColumnListBoxItemDrawer::CMyColumnListBoxItemDr awer(
MTextListBoxModel* aTextListBoxModel, const CFont* aFont,
CColumnListBoxData* aColumnData, CEikListBox* aListBox,
CControl * aControl, CMaxIcon * aBack, CMaxIcon * aSelBack) :
CColumnListBoxItemDrawer(aTextListBoxModel, aFont, aColumnData), iOwner(
aListBox)
{
iControl = aControl;
iBack = aBack;
iSelectedBack = aSelBack;
//SetItemCellSize(TSize(360, 150));
}
void CMyColumnListBoxItemDrawer::DrawActualItem(TInt aItemIndex,
const TRect& aActualItemRect, TBool aItemIsCurrent,
TBool aViewIsEmphasized, TBool, TBool aItemIsSelected) const
{
//需要修改 高亮
/*
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext(iOwner);
if (skin && cc)
{
AknsDrawUtils::Background(skin, cc, iOwner, *iGc, aActualItemRect);
}
*/
TRect aRect = aActualItemRect;
aRect.iBr.iX += 30;
TRgb rSelected(TRgb(228, 100, 41)); //选中的颜色
TRgb rUnSelected(TRgb(255, 255, 255)); //没有选中的颜色
TRect outer_rect(aRect);
outer_rect.Shrink(2, 2);
TRect inner_rect(outer_rect);
inner_rect.Shrink(3, 3);
/*
//画背景图片
NHelper::DrawMaxIcon(*iGc, aActualItemRect, iBack);
*/
/*
if (aItemIsCurrent)
{
NHelper::DrawMaxIcon(*iGc, aActualItemRect, iSelectedBack);
}
else
{
NHelper::DrawMaxIcon(*iGc, aActualItemRect, iBack);
}
*/
if (aItemIsCurrent)
{
//NHelper::DrawMaxIcon(*iGc, aActualItemRect, iSelectedBack);
iGc->DrawBitmap(aRect, iSelectedBack->m_pBitmap);
}
else
{
//NHelper::DrawMaxIcon(*iGc, aActualItemRect, iBack);
iGc->DrawBitmap(aRect, iBack->m_pBitmap);
}
//初始黑色
const CFont* font = CEikonEnv::Static()->NormalFont();
iGc->UseFont(font);
iGc->SetPenStyle(CGraphicsContext::ESolidPen);
iGc->SetPenColor(iHighlightedTextColor);
TPtrC itemText = iModel->ItemText(aItemIndex);
TInt baseline = (aRect.Height() - font->HeightInPixels()) / 2
+ font->AscentInPixels();
//计算每段字符串长度
TInt highlightwidth = font->TextWidthInPixels(itemText);
TRect highlighted = aRect;
highlighted.SetWidth(highlightwidth);
//画每段字符串iTextColor
iGc->SetPenColor(rUnSelected);
iGc->SetPenStyle(CGraphicsContext::ESolidPen);
iGc->DrawText(itemText, highlighted, baseline);
//释放字体
iGc->DiscardFont();
}
CMyColumnListBoxItemDrawer::~CMyColumnListBoxItemD rawer()
{
}
//------------------------------------------------ ----注意事项------------------------------------------------
我终于找到解决的办法了。办法如下:
1.在创建列表元素的时候设置一下大小
iListShopBox->View()->SetItemHeight(100);
2.在CreateItemDrawerL()中添加
iItemDrawer->SetItemCellSize(TSize(360 , 100));
就OK了……
发表评论
-
C++字符串分割函数
2012-07-06 09:51 810/**************************** ... -
禁止表单的自动完成(正则表达式的补充)
2012-07-06 09:45 523我们知道如果禁止用户输入一些类型的数据,比如说用正则表达式 ... -
Python核心编程之正则表达式-练习题解答
2012-07-06 09:37 11341. 识别下列字符串:"bat," & ... -
javascript日历控件脚本
2012-07-05 20:45 7211.代码部分: ... -
方案一:ScriptX打印组件
2012-07-03 13:43 619方案一:ScriptX打印组件 方案二:WsRepor ... -
Flex入门之增强型约束条件
2012-07-02 10:41 547增强型约束条件主要用于控件排列时相对于兄弟元素的位置。增强 ... -
Flex 实现LineChart曲线――动态加载组件
2012-07-02 10:41 719width="100%" initi ... -
Flex中DataGrid动态增加列
2012-07-02 10:41 558方法一: ... -
Flex做的颜色器
2012-07-02 10:41 488此效果用对象的toString()方法来格式化输出字符串类 ... -
ArcGIS Server 开发总结2
2012-07-01 00:18 647SDE与Server的安装与 ... -
基于push技术的web实时网络管理框架研究
2012-07-01 00:18 5131 引言 基于 web 的网络管理是web 功能和网 ... -
imx515 开发板Android源代码编译过程[开发日记]
2012-07-01 00:18 1028Android requires the followin ... -
Android 开发环境入门
2012-07-01 00:18 532Android源码的下载 在这里面以Ubuntu(x ... -
32位Ubuntu编译hiphop全攻略
2012-07-01 00:18 708hiphop是facebook的一个开源项目。 目的是将p ...
相关推荐
自定义了QComboBox,将下拉框的原有左对齐的文字改为右对齐,包括下拉列表的文字,增大了下拉列表的高度,调整下拉列表的宽度的自适应。下拉框的下拉列表改成了仿手机的滑动操作方式,此为工程源码,Qt5亲测可用。
支持一级标题、二级标题、文本、粗体、斜体、、有序列表、无序列表、图片和段落引用,支持自定义每一类富文本内容的字体、字体大小、字体颜色、行距、外边距、对齐方式等各项内容,也支持全文背景和页面边距的...
6、调整:列表_返回顶部 的参数从速度修改为耗时 更直观的表现速度【默认为1(小数型 单位秒)】 tip:通过简单计算当前表项数量和一个常量值可得到固定速度噢~ 例如:0.1 × 图文列表框_多列.获取_表项数量 () ÷ ...
1、调整:列表_绑定纵向滚动条的第二参数可接收空参 默认为列表载体的初始高度 2、定义私有数据类型:posAndSize 用于记录组件的坐标和大小 同时衍生 一系列Get和set方法(私有方法 | 将用于后期自适应组件的判断、...
04147设置单元格区域的除对角框线以外的全部边框 04148删除单元格区域的全部边框 04149设置单元格的颜色和背景 04150设置单元格的格式 04151设置单元格的对齐方式 04152缩小单元格内容以全部显示 04153设定、删除...
这个功能为应用程序提供了高度的交互性和可定制性,使得用户可以根据自己的需求和喜好来重新排列列表。 该ListView组件基于Android的Drag-and-Drop框架构建,充分利用了Android平台提供的原生拖放支持。通过简单的...
有了该程序的帮助,当您需要插入交叉引用时,您不必再打开“交叉引用”对话框去繁琐地选择组合框和列表框中的项目,您只需通过一个按钮来完成操作。 【参考文献】 可通过“列出段落”和“尾注”两种方式一键编辑...
有了该程序的帮助,当您需要插入交叉引用时,您不必再打开“交叉引用”对话框去繁琐地选择组合框和列表框中的项目,您只需通过一个按钮来完成操作。 【参考文献】 可通过“列出段落”和“尾注”两种方式一键编辑...
- 表格行高,表头行高,都支持自定义高度 - 文字布局,支持设置,左对齐和居中对齐 - 支持表头行的样式自定义 - 支持表格行的样式自定义,使用函数渲染,返回参数:行索引。 - 表头列的顺序支持拖拽变更,支持开关该...
B、对于属性筛选图元:在筛选图元对话框中①列表框中选择图元类型——当前点/线/区文件,再点确定;弹出表达式输入对话框②然后在字段名称下面选中一个属性字段作为筛选属性;③接着点击操作符区的运算符按钮,并且...
比如用户如果想分别按1:100、1:50和1:20打印同一张图纸,只需要调整空间的注释比例,文字和标注箭头大小就会自动调整,保证最终不同比例打印的文字高度和标注的大小是一致的,如下图所示。 在布局空间中如果要设置...
工具提示当移动鼠标到动作控件上方时,可以弹出一条工具提示,并且可以使用漂亮的自定义风格替换系统默认的工具提示风格。 使用自定义工具提示使用自定义风格的工具提示,不选定则使用系统默认的工具提示风格。 ...
工具提示当移动鼠标到动作控件上方时,可以弹出一条工具提示,并且可以使用漂亮的自定义风格替换系统默认的工具提示风格。 使用自定义工具提示使用自定义风格的工具提示,不选定则使用系统默认的工具提示风格。 ...
10.17 在列表框上添加自定义按钮 10.18 为列表添加自定义的缩略图图标 10.19 创建列表日历的效果 10.20 动态创建listview列表项 10.21 动态加载和切换页面 10.22 在页面切换时显示加载进度框 10.23 在屏幕旋转时更改...
在标题栏右边的下拉列表中可以设置窗口只显示一半的高度和关闭该窗口。 5.2.4浮动面板 Fireworks的浮动面板共有14个,分别为“信息、层、混色器、颜色样本、样式、URL、库、形状、帧、历史记录、行为、查找、优化...
9、增加自定义页面,可以在根目录下生成自定义静态页。 10、增加网站地图,sitemap.php页面。 11、增加404错误页面。 V4.2更新内容: 1、后台增加自定义伪静态栏目。如果需要自定义伪静态,请确认网站服务器支持根...
2) 修改静态编译后“选择列表框”在“单选”属性为真时不显示项目内容的BUG 3) 修改核心库中“播放音乐”命令在没有声卡或声卡被禁用时未正确释放资源的BUG 4) 修改静态编译后“读配置项”命令在第三个参数“配置...
- 高度的可配置性:可自定义工具栏和菜单等资源; - 支持键盘快捷键:可通过快捷键调用大多数功能; - 支持多国语言及 Unicode:消除语言文字的鸿沟; - 支持长文件名:文件名长度最多可达 1022 字符; - 支持...
9、增加自定义页面,可以在根目录下生成自定义静态页。 10、增加网站地图,sitemap.php页面。 11、增加404错误页面。 V4.2更新内容: 1、后台增加自定义伪静态栏目。如果需要自定义伪静态,请确认网站服务器支持根...