当前位置:文档之家› 第19章---高级控件的使用PPT课件

第19章---高级控件的使用PPT课件

掩码图 • 列表中开始的图像个数; • 列表中可以动态增加的图像个数,为0,不能。
-
10
加入图
• int Add(
– CBitmap* pbmImage, – CBitmap* pbmMask );
• int Add(
– CBitmap* pbmImage, – COLORREF crMask );
m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1)); • m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON2)); • m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON3)); • m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON4));
-
8
图1 图2 图3
图像列表
• 2、创建图像列
• (1) 声明一个CImageList的变量
• CImageList m_ImgL;
• (2) 调用Create函数
• BOOL Create(
– int cx, //图宽 – int cy, //高度 – UINT nFlags,// – int nInitial, //初始图片数 – int nGrow ); //可以增加图片数
– dc.TextOut(0,20*i,str);
•}
-
6
相似的类还有
• CPtrArray • CStringArray • CByteArray • CDwordArray • ……
-
7
图像列表
1、图像列表类的结构
CObject
CImageList
图像列表控件维护图像数组,每一图像的大小 相同,都有一数组下标指明其在数组中的位置, 数组初始下标为0。 例如,下列图示:
• 1、添加spin按钮时,要紧随绑定的Edit或Static控 件,保证Spin控件的tab键序号值等于其伙伴控件 的tab键序号值+1,按 Ctrl+D可以修改tab键序号
• 设置spin按钮属性,选中auto buddy和set buddy integer属性,Wrap属性(数值循环)自动其自动范 围为100~0,向下箭头增加
• 下列代码向一个图像列表中增加4个位图图像。
-
12
图像列表
• CImageList *m_pImageList; //在一个类中定义 • // 在初始化程序中实现 • // CAQJMainDlg::OnInitDialog() • m_pImageList = new CImageList; • m_pImageList->Create(16, 16,ILC_COLOR8, 4,0);
1 ); • void RemoveAll( ); • CObject* GetAt( INT_PTR nIndex ) const; • void SetAt( INT_PTR nIndex, CObject* newElement );
Parameters • INT_PTR GetSize( ) const;
nFlags: ILC_COLOR8、16、24、32 ILC_COLORDDB//系统 ILC_MASK //
-
9
参数说明
• 例如: m_ImL.Create(16,16,FALSE,1,0) • Create函数的5个参数表示 • 控件中图像的宽度、高度; • 有掩码时每图有两幅图,原图外还有一幅黑白的
-
5
CObArray示例
• 示例:CObArrayDemo
• class CPointX:public CObject{
– public :
– int x,y;
Байду номын сангаас
– CPointX(int x,int y){this->x=x;this->y=y;}
•}
• CClientDC dc(this);CString str;int i;CObArray oa;CPointX *p;
• int Add( HICON hIcon );
-
11
图像列表
• (3) 初始化图像列表
• 在完成(1)、(2)后,需向列表中增加图像,方法 是调用图像列表的Add方法。
• hIcon = LoadIcon(hInst,

MAKEINTRESOURCE(IDI_ICON1));
• m_ImL.Add(hIcon);
高级控件的使用
-
1
高级控件类的使用
• 微调按钮(CSpinButtonCtrl) • 对象数组(CObArray) • 图像列表控件(CImageList) • 列表视图控件(CListCtrl) • 树型视图控件(CTreeCtrl) • 属性表
-
2
CSpinButtonCtrl
• 使用步骤:
-
4
CObArray主要方法
• CObArray是保存对象的指针数组,能自动管理空间 • INT_PTR Add( CObject* newElement ); • void InsertAt( INT_PTR nIndex, CObject* newElement,
INT_PTR nCount = 1 ); • void RemoveAt( INT_PTR nIndex, INT_PTR nCount =
• 如要改变绑定对象,需使用CSpinButtonCtrl的 SetBuddy方法,改变数值范围,需使用 SetRange 方法
-
3
使用Spin 控件示例
• 首先给Spin控件添加控件成员m_Spin,然后在对 话框OnInitDialog()内添加代码
• BOOL CCSpinDemoDlg::OnInitDialog() • { CDialog::OnInitDialog(); • …… • CWnd *pEdit=GetDlgItem(IDC_EDITSPIN); • m_Spin.SetRange(0,1000); • m_Spin.SetBuddy(pEdit); •} • 示例:CSpinDemo
• for(i=0;i<10;i++){
– p=new CPointX(rand(),rand());
– oa.Add(p);
•}
• for(i=0;i<10;i++){
– str.Format("%d,%d",
– ((CPointX *)oa.GetAt(i))->x,((CPointX *)oa.GetAt(i))->y);
相关主题