在GOPaint的设计研究过程中,我一直希望能够实现这样的结果(A B C 3个步骤)

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

在我之前的博客里面,曾经有过缩略图显示的现就(http://www.cnblogs.com/jsxyhelu/p/5493329.html   ),也应用到了实际的项目中。但是现在过了一段时间后回头再看,当时的实现放吧是粗糙的。基于MFC已经提供的基础库,通过c++自己的重载机制,应该能够得到精巧的实现,但是肯定需要去重写一些东西。

为了解决问题,达到效果,进行了一些研究。 

一、CMFCShellList和CMFCShellTree基本结合;

这两个控件是新出现的,使用起来比较简单。

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

 平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

DIalog的方便之处就在于“所见及所得”,这里绑定控件变量。

在initdialog中添加两句,就能得到效果

    m_ctrlShellList.ModifyStyle(LVS_TYPEMASK, LVS_ICON);
    m_ctrlShellTree.SetRelatedList(&m_ctrlShellList);

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

Tree的结果和List的结果是级联的。但是显示不了缩略图,只能够显示图标。

二、对CMFCShellList和CMFCShellTree的继承和研究;

如果要更好地使用这两个类,必须首先继承之后使用,在这个过程中,我才能够重写函数和事件:

在原始的mfcshelllistctrl控件中,如果双击其中的文件(图片)的话,是采用默认的打开程序打开文件(图片),那么我要把这个修改成使用我自己的程序来打开图片,所以首先就需要进行CMFCShellListCtrl的重载

#pragma once
#include "afxshelllistctrl.h"
class CGOShellListCtrl :
    public CMFCShellListCtrl
{
public:
    CGOShellListCtrl(void);
    ~CGOShellListCtrl(

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式