在GOPaint的設(shè)計(jì)研究過程中,我一直希望能夠?qū)崿F(xiàn)這樣的結(jié)果(A B C 3個(gè)步驟)
在我之前的博客里面,曾經(jīng)有過縮略圖顯示的現(xiàn)就(http://www.cnblogs.com/jsxyhelu/p/5493329.html ),也應(yīng)用到了實(shí)際的項(xiàng)目中。但是現(xiàn)在過了一段時(shí)間后回頭再看,當(dāng)時(shí)的實(shí)現(xiàn)放吧是粗糙的。基于MFC已經(jīng)提供的基礎(chǔ)庫,通過c++自己的重載機(jī)制,應(yīng)該能夠得到精巧的實(shí)現(xiàn),但是肯定需要去重寫一些東西。
為了解決問題,達(dá)到效果,進(jìn)行了一些研究。
一、CMFCShellList和CMFCShellTree基本結(jié)合;
這兩個(gè)控件是新出現(xiàn)的,使用起來比較簡單。
DIalog的方便之處就在于“所見及所得”,這里綁定控件變量。
在initdialog中添加兩句,就能得到效果
m_ctrlShellList.ModifyStyle(LVS_TYPEMASK, LVS_ICON);
m_ctrlShellTree.SetRelatedList(&m_ctrlShellList);
Tree的結(jié)果和List的結(jié)果是級聯(lián)的。但是顯示不了縮略圖,只能夠顯示圖標(biāo)。
二、對CMFCShellList和CMFCShellTree的繼承和研究;
如果要更好地使用這兩個(gè)類,必須首先繼承之后使用,在這個(gè)過程中,我才能夠重寫函數(shù)和事件:
在原始的mfcshelllistctrl控件中,如果雙擊其中的文件(圖片)的話,是采用默認(rèn)的打開程序打開文件(圖片),那么我要把這個(gè)修改成使用我自己的程序來打開圖片,所以首先就需要進(jìn)行CMFCShellListCtrl的重載
#pragma once
#include "afxshelllistctrl.h"
class CGOShellListCtrl :
public CMFCShellListCtrl
{
public:
CGOShellListCtrl(void);
~CGOShellListCtrl(