当前位置:编程学习 > C/C++ >>

自己动手制作一款简洁实用的图片浏览器

 

 

    软件DIY,说白了就是利用现有的类库、组件,快速构造出自己的程序

出来。就象你找来各种电脑配件,然后把它们装配成整机一样;但也有不

一样的地方,电脑配件即使是旧的二手配件,怎么说也得花一点钱,而软件

的类库、组件,你有时侯可以免费得到。

 

想要DIY的,是一款简洁实用的图片浏览器。众所周知,ACDSee是最流行

的图片浏览器,确实很不错。

 

DIY出了这么一个图片浏览器,她简洁实用,小巧玲珑,取名为:

SimpleBrowse。

 

第一步:定规格

 

1.样子要象ACDSee一样,左边是目录树,右边是文件列表,显示图片文件的缩图。

 

2.缩图要好看,浏览速度要快,能浏览的图片格式要多。

 

3.简洁实用,制作难度不要太大。

 

4.在Win98,WinNT下都能用。

 

第二步:选材料

 

由于界面主要分为两大部分,即左边的目录树和右边的文件列表,故材料也就主

要是这两大件。

 

1.左边目录树

 

从http://www.codejockeys.com/kstowell/上,我们可以得到一个免费的MFC扩

展类库CJ60Lib.dll,这个类库包含有许多用于界面设计的类,其中有一个

CShellTree类,可以显示和Windows Explorer左边目录树一样的效果,正好符

合我想要的,选定了它。

 

2.右边文件列表

 

这是关键的部分,它要求能创建、显示、管理图片文件的缩图,要求能浏览多

种格式的图片文件,要求有较精美的缩图显示效果和较快的浏览速度,要求易

于使用难度不大。泰来影像科技有限公司在图像处理应用软件开发方面有较深

的造诣,推出了一个MFC扩展类库thl.dll,其中有一个CThumbListCtrl类,正

是用来创建、显示图片缩图用的,选定了它,从http://www.thalia.com.cn/上获取之。

 

---- 第三步:生成程序框架

 

---- 象开发其他程序一样,用VC++6.0 AppWizard生成程序框架。

 

---- 1.选菜单项File->New,到Projects面板,选取MFC AppWizard(exe),

Project name为SimpleBrowse。OK确定后,进入一个向导中,共有6步。

 

---- 2.Step 1,选single document,其它不动,用缺省值。

 

---- 3.Step 2 of 6,不动,用缺省值。

 

---- 4.Step 3 of 6,不动,用缺省值。

 

---- 5.Step 4 of 6,选Internet Explorer ReBars,其它不动,用缺省值。

 

---- 6.Step 5 of 6,选Windows Explorer,其它不动,用缺省值。

 

---- 7.Step 6 of 6,不动,用缺省值。Finish确定后,即生成程序框架。

 

---- 第四步:使用类库、组件

 

---- 1.左边的目录树对应的类是CLeftView,修改之。

 

class CLeftView : public CView/*CTreeView*/

{

...

// Attributes

public:

CShellTree m_TreeCtrl;// use shell tree control

...

// Generated message map functions

protected:

//{{AFX_MSG(CLeftView)

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

afx_msg void OnSize(UINT nType, int cx, int cy);

afx_msg void OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult);

afx_msg void OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

...

};

 

 

---- (1)将其父类由CTreeView改为CView,原因后述。

 

---- (2)加入CShellTree类的成员变量m_TreeCtrl,目录树的具体内容就是由它实现的。

 

---- (3)增加消息响应函数OnCreate(),在其中把m_TreeCtrl创建起

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,