智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

自定义控件—特效列表控件
[VC 编程] 2008-04-03

作者:吴磊

源代码下载

摘要
  WINDOWS应用程序的创建一般都需要使用控件,像VB、DELPHI等编程环境都提供了相当多的控件供程序员调用,这些控件基本上能满足程序开发的要求,但有时也会有些不尽如意的地方,因此学会创建自定义控件有一定的重要性。本程序实现了一个可以折叠、可以更换成员类型的特效列表控件。

关键字 特效列表控件

一、创建目标

  1. 建立类似于Windows XP窗口中左部的列表控件,如下图所示
  2.  

  3. 用户可自由添加列表成员
  4. 控件可以折叠和伸展,折叠时只显示标题栏
  5. 控件可显示在由CWnd派生的窗口类中
  6. 每个成员可响应鼠标事件,并向用户提供编程接口

二、设计与实现

1、对象

特效列表控件(TaskListBox)——提供用户编程接口,处理与窗口对象衔接。
特效列表(TaskList)——受特效列表控件委托,实现控件的所有功能。
成员(Item)——代表每个列表成员,可以响应鼠标事件。
边框(TaskFrame)——处理特效列表控件的标题与边框绘制。
折叠按钮(PuckerBtn)——实现特效列表控件的折叠动作。

2、对象结构如下图所示

3、本程序综合使用了设计模式,详细实现见源代码。下面是TaskListBox部分实现代码:

bool CTaskListBox::CreateTaskList() { UINT id = this->GetDlgCtrlID(); CString str; GetWindowText(str); m_pTaskList = new CTaskList(this, new CTaskFrame(str), new CPuckerBtn(this), new CTaskItem(this, id)); ASSERT(m_pTaskList); return m_pTaskList != NULL; } bool CTaskListBox::CreateColorList() { UINT id = this->GetDlgCtrlID(); CString str; GetWindowText(str); m_pTaskList = new CTaskList(this, new CTaskFrame(str), new CPuckerBtn(this), new CColorItem(this, id)); ASSERT(m_pTaskList); return m_pTaskList != NULL; }
三、特效列表控件的使用

  从对象结构图中可以看出特效列表控件派生自MFC中的CStatic静态控件,其创建方式与静态控件完全相同,控件通过向父窗口发送消息来提供编程接口。下面是特效列表控件的在对话框中的初始化代码:

m_lbTask.CreateTaskList(); CString tasks[] = { "Explorer 7.0", "WINRAR 4.0", "MediaPlayer", "Reader 7.0", "PowerDesigner", "Word 2000", "EXCEL 2000", "RealPlayer 10", "AutoCAD 2004", "ACCESS 2003" }; CImageList m_imgList; m_imgList.Create(IDB_BITMAP1,16, 1, RGB(255,255,255)); ItemInfo item; item.type = II_ICONTEXT; for(int i = 0; i < sizeof(tasks) / sizeof(tasks[0]); i++) { item.index = i; item.text = tasks[i]; item.icon = m_imgList.ExtractIcon(i % 10); m_lbTask.AddItem(item); } m_lbTask.ReSize();
[VC 编程添加评论 | 评论/阅读(0/392)
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1