急,求看看这个是什么控件,是tree?还是list?

luoyel101 2014-04-21 09:29:04


最好大概说说怎么怎么实现类似的功能
...全文
175 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyel101 2014-04-24
  • 打赏
  • 举报
回复
谢谢各位回复的大神。 先结贴了,这个留着以后在探讨。
gz_qmc 2014-04-21
  • 打赏
  • 举报
回复
引用 10 楼 allenhiman 的回复:
楼上似乎从一开始就不是新人 高手啊 你这么聊聊几句代码 还盛气凌人的架势 嫩小名是叫“无敌”吗? 这个东西 任谁完美实现了 也不是件简单的事 工作量在那摆着呢 细节肯定有好多
你错了,大错特错 首先,数据结构是基础,如果这个叫难,那我无话可说了 其次,对于控件,就需要完成几个功能 1、添加任务AddTask,这是单纯的操作链表的东西,关于链表,你甚至翻本书或百度一下就有现成操作代码 2、创建窗口Create,同样是个百度一下就可以的,我甚至可以直接给你代码 BOOL CMyDoor::Create(int sx,int sy,int width, int height, CWnd *pParent, UINT nID) { CString szClassName = AfxRegisterWndClass(0x843,LoadCursor(NULL,IDC_ARROW),0,0); CRect rect(sx,sy,sx+width,sy+height); if(!CWnd::CreateEx(0,szClassName,_T(""),WS_CHILD|WS_VISIBLE,rect,pParent,nID)) return FALSE; UpdateWindow(); return TRUE; } 3、画图OnPaint, 将TASK *tList[9];的数据挨个画到窗口上去 这几个东西难吗,难吗,难吗!!!!!!!!!!!!!!!!
luoyel101 2014-04-21
  • 打赏
  • 举报
回复
引用 9 楼 gz_qmc 的回复:
学程序,要先懂数据结构 一个东西,我们自己有明明权,关键是要知道自己要什么 就上面的图 我自己定义这个控件叫梭拉门控件行不行呢? typedef struct tagTASK { char TextA[50]; //大标题 char TextB[50]; //小标题 char Date[10]; //日期 char Image; //图标索引,0表示缺省,即小红旗 struct tagLIST *next; struct tagLIST *prev; }TASK; class CMyDoor: public CWnd { public: MyDoor(); virtual~MyDoor(); public: void AddTask(char xWeek,TASK *xTask); void AddTask(char xWeek,char *xTextA,char *xTextB.char *xDate,char xImg); public: //{{AFX_VIRTUAL(CMyDoor) public: virtual BOOL Create(int sx,int sy,int width,int height, CWnd* pParentWnd, UINT nID); //}}AFX_VIRTUAL protected: //{{AFX_MSG(CMyDoor) afx_msg void OnPaint(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: TASK *tList[9]; //周一至周日加上周和以前共九种 }; 这么简单都看不懂,那就等死吧
先谢谢啦,中午再具体看看
allenhiman 2014-04-21
  • 打赏
  • 举报
回复
楼上似乎从一开始就不是新人 高手啊 你这么聊聊几句代码 还盛气凌人的架势 嫩小名是叫“无敌”吗? 这个东西 任谁完美实现了 也不是件简单的事 工作量在那摆着呢 细节肯定有好多
gz_qmc 2014-04-21
  • 打赏
  • 举报
回复
学程序,要先懂数据结构 一个东西,我们自己有明明权,关键是要知道自己要什么 就上面的图 我自己定义这个控件叫梭拉门控件行不行呢? typedef struct tagTASK { char TextA[50]; //大标题 char TextB[50]; //小标题 char Date[10]; //日期 char Image; //图标索引,0表示缺省,即小红旗 struct tagLIST *next; struct tagLIST *prev; }TASK; class CMyDoor: public CWnd { public: MyDoor(); virtual~MyDoor(); public: void AddTask(char xWeek,TASK *xTask); void AddTask(char xWeek,char *xTextA,char *xTextB.char *xDate,char xImg); public: //{{AFX_VIRTUAL(CMyDoor) public: virtual BOOL Create(int sx,int sy,int width,int height, CWnd* pParentWnd, UINT nID); //}}AFX_VIRTUAL protected: //{{AFX_MSG(CMyDoor) afx_msg void OnPaint(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: TASK *tList[9]; //周一至周日加上周和以前共九种 }; 这么简单都看不懂,那就等死吧
luoyel101 2014-04-21
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
扩展的List
有相关的类么?(可耻的伸手党....) 或者大概分析一下都用了什么东西,我看着能能画出来...
luoyel101 2014-04-21
  • 打赏
  • 举报
回复
引用 5 楼 allenhiman 的回复:
如果让我做这个 我就像3楼说的 我不会考虑 tree或者list 直接自己画吧 其实和重载没啥大的区别
是网易闪电邮,解析个邮件就够坑的了....
luoyel101 2014-04-21
  • 打赏
  • 举报
回复
引用 2 楼 gz_qmc 的回复:
明白告诉你 即不是Tree,也不是List 问题是说了你懂吗? 不要成天思维就局限在别人的逻辑里 自绘没有说一定是微软定义的那些控件 你已经被毒害太深了
大神啊,我新手做毕业设计。哪懂这么多,有现成用就用,怪不得我看tree不像,list也不像..... 自己画一个UI也太麻烦了..
allenhiman 2014-04-21
  • 打赏
  • 举报
回复
如果让我做这个 我就像3楼说的 我不会考虑 tree或者list 直接自己画吧 其实和重载没啥大的区别
allenhiman 2014-04-21
  • 打赏
  • 举报
回复
如果是outlook的话 就真的什么也不是
oyljerry 2014-04-21
  • 打赏
  • 举报
回复
扩展的List
gz_qmc 2014-04-21
  • 打赏
  • 举报
回复
明白告诉你 即不是Tree,也不是List 问题是说了你懂吗? 不要成天思维就局限在别人的逻辑里 自绘没有说一定是微软定义的那些控件 你已经被毒害太深了
yeah2000 2014-04-21
  • 打赏
  • 举报
回复
像是自绘list
gz_qmc 2014-04-21
  • 打赏
  • 举报
回复
你可能觉得我说话比较盛气凌人 的确是有点那么个味道的 但不是我的本意 我总结很多人老问些没有水准的问题 其根源不是因为他们是新人,有些都好多年的学习经验了 说是新人其实只是找个借口,找个龟壳躲好而已 根本是思维的问题 就编程这点东西,真的只需要抓住本质实操一次就一通百通了 问题是人的惯性思维就是老爱背离本质 另外我补充个滚动条的问题,我就用文字描述给你们听 画图用双缓冲,一旦你会用双缓冲了,滚动其实就是把内存DC里不同坐标的内容 拷贝到显示的CRect里。 滚动条也是单纯的四个部分,以垂直滚动条为例: 上箭头CRect,下箭头CRect,滑槽CRect,滑块CRect 鼠标点在不同的CRect里,向控制对象窗口发送不同消息而已 对象窗口接到消息,改变起始Y值,然后BitBlt就可以,全都在画上下工夫
gz_qmc 2014-04-21
  • 打赏
  • 举报
回复
第一、增删排序都是单纯的链表操作,而且,这种控件所用到的条目,顶天也就百来条 就算你用效率最差的排序,也丝毫不影响整体效果,所以,不需要掌握那么深 就算你需要很牛B ,只要有能用的代码,剩下的就是局部修改的问题,完全可以慢慢完善 第二、操作,你觉得操作有啥内容呢?问题是,整体框架有了,一切都不乱了 按部就班填代码不就可以了吗?一旦前面的几个功能写好了,特别是画,要画,自然就会 定义一批CRect,而操作,无非就是修改这些CRect而已, 也就是有了这些CRect,响应操作很简单,没有,操作啥呢? 总结结论就是,学习东西的人,走第一二三步是最困难的也是最关键的, 如果他会了一二三步,其他的用得着你教吗? 如果他不会一二三步,其他你说了除了添乱还有用吗?
allenhiman 2014-04-21
  • 打赏
  • 举报
回复
引用 12 楼 gz_qmc 的回复:
[quote=引用 10 楼 allenhiman 的回复:] 楼上似乎从一开始就不是新人 高手啊 你这么聊聊几句代码 还盛气凌人的架势 嫩小名是叫“无敌”吗? 这个东西 任谁完美实现了 也不是件简单的事 工作量在那摆着呢 细节肯定有好多
你错了,大错特错 首先,数据结构是基础,如果这个叫难,那我无话可说了 其次,对于控件,就需要完成几个功能 1、添加任务AddTask,这是单纯的操作链表的东西,关于链表,你甚至翻本书或百度一下就有现成操作代码 2、创建窗口Create,同样是个百度一下就可以的,我甚至可以直接给你代码 BOOL CMyDoor::Create(int sx,int sy,int width, int height, CWnd *pParent, UINT nID) { CString szClassName = AfxRegisterWndClass(0x843,LoadCursor(NULL,IDC_ARROW),0,0); CRect rect(sx,sy,sx+width,sy+height); if(!CWnd::CreateEx(0,szClassName,_T(""),WS_CHILD|WS_VISIBLE,rect,pParent,nID)) return FALSE; UpdateWindow(); return TRUE; } 3、画图OnPaint, 将TASK *tList[9];的数据挨个画到窗口上去 这几个东西难吗,难吗,难吗!!!!!!!!!!!!!!!![/quote] 不用考虑操作啊? 不用考虑滚动条啊?不用考虑增删啊?不用考虑排序啊?
「已注销」 2014-04-21
  • 打赏
  • 举报
回复
这个控件我可以写, 联系QQ 7423385

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧