// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "SimpleBrowse.h"
#include "MainFrm.h"
#include "LeftView.h"
#include "SimpleBrowseView.h"
#include "Aid.h"
#include "io.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_VIEW_THUMBNAIL, OnViewThumbnail)
ON_UPDATE_COMMAND_UI(ID_VIEW_THUMBNAIL, OnUpdateViewThumbnail)
ON_COMMAND(ID_HTML_HELP, OnHtmlHelp)
ON_COMMAND(ID_DIY, OnDiy)
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI_RANGE(AFX_ID_VIEW_MINIMUM, AFX_ID_VIEW_MAXIMUM, OnUpdateViewStyles)
ON_COMMAND_RANGE(AFX_ID_VIEW_MINIMUM, AFX_ID_VIEW_MAXIMUM, OnViewStyle)
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// if (!m_wndDlgBar.Create(this, IDR_MAINFRAME,
// CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
// {
// TRACE0("Failed to create dialogbar\n");
// return -1; // fail to create
// }
if (!m_wndReBar.Create(this) ||
!m_wndReBar.AddBar(&m_wndToolBar))// ||
// !m_wndReBar.AddBar(&m_wndDlgBar))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Remove this if you don't want tool tips
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY);
return 0;
}
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
// create splitter window
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 100), pContext) ||
!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CSimpleBrowseView), CSize(100, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
return TRUE;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
CSimpleBrowseView* CMainFrame::GetRightPane()
{
CWnd* pWnd = m_wndSplitter.GetPane(0, 1);
CSimpleBrowseView* pView = DYNAMIC_DOWNCAST(CSimpleBrowseView, pWnd);
return pView;
}
void CMainFrame::OnUpdateViewStyles(CCmdUI* pCmdUI)
{
// TODO: customize or extend this code to handle choices on the
// View menu.
CSimpleBrowseView* pView = GetRightPane();
// if the right-hand pane hasn't been created or isn't a view,
// disable commands in our range
if (pView == NULL)
pCmdUI->Enable(FALSE);
else
{
BOOL bThumbnail = pView->m_ThumbListCtrl.IsInThumbnailView();
DWORD dwStyle = pView->m_ThumbListCtrl.GetStyle() & LVS_TYPEMASK;
// if the command is ID_VIEW_LINEUP, only enable command
// when we're in LVS_ICON or LVS_SMALLICON mode
if (pCmdUI->m_nID == ID_VIEW_LINEUP)
{
if (dwStyle == LVS_ICON || dwStyle == LVS_SMALLICON)
pCmdUI->Enable();
else
pCmdUI->Enable(FALSE);
}
else
{
// otherwise, use dots to reflect the style of the view
pCmdUI->Enable();
BOOL bChecked = FALSE;
switch (pCmdUI->m_nID)
{
case ID_VIEW_DETAILS:
bChecked = (dwStyle == LVS_REPORT);
break;
case ID_VIEW_SMALLICON:
bChecked = (dwStyle == LVS_SMALLICON);
break;
case ID_VIEW_LARGEICON:
bChecked = (dwStyle == LVS_ICON);
break;
case ID_VIEW_LIST:
bChecked = (dwStyle == LVS_LIST);
break;
default:
bChecked = FALSE;
break;
}
bChecked = bChecked && !bThumbnail;
pCmdUI->SetRadio(bChecked ? 1 : 0);
}
}
}
void CMainFrame::OnViewStyle(UINT nCommandID)
{
// TODO: customize or extend this code to handle choices on the
// View menu.
CSimpleBrowseView* pView = GetRightPane();
// if the right-hand pane has been created and is a CSimpleBrowseView,
// process the menu commands...
if (pView != NULL)
{
DWORD dwStyle = -1;
switch (nCommandID)
{
case ID_VIEW_LINEUP:
{
// ask the list control to snap to grid
CListCtrl& refListCtrl = (CListCtrl&)pView->m_ThumbListCtrl;
refListCtrl.Arrange(LVA_SNAPTOGRID);
}
break;
// other commands change the style on the list control
case ID_VIEW_DETAILS:
dwStyle = LVS_REPORT;
break;
case ID_VIEW_SMALLICON:
dwStyle = LVS_SMALLICON;
break;
case ID_VIEW_LARGEICON:
dwStyle = LVS_ICON;
break;
case ID_VIEW_LIST:
dwStyle = LVS_LIST;
break;
}
// change the style; window will repaint automatically
if (dwStyle != -1)
{
// call CThumbListCtrl::LeaveThumbnailView() if leave "thumbnail view"
pView->m_ThumbListCtrl.LeaveThumbnailView();
pView->m_ThumbListCtrl.ModifyStyle(LVS_TYPEMASK, dwStyle);
}
}
}
void CMainFrame::OnViewThumbnail()
{
// TODO: Add your command handler code here
CSimpleBrowseView* pView = GetRightPane();
// if the right-hand pane has been created and is a CSimpleBrowseView,
// process the menu commands...
if (pView != NULL)
{
// call CThumbListCtrl::GotoThumbnailView() if entry "thumbnail view"
pView->m_ThumbListCtrl.GotoThumbnailView();
DWORD dwStyle = LVS_ICON;
pView->m_ThumbListCtrl.ModifyStyle(LVS_TYPEMASK, dwStyle);
}
}
void CMainFrame::OnUpdateViewThumbnail(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CSimpleBrowseView* pView = GetRightPane();
// if the right-hand pane hasn't been created or isn't a view,
// disable commands in our range
if (pView == NULL)
pCmdUI->Enable(FALSE);
else
{
pCmdUI->Enable();
BOOL bThumbnail = pView->m_ThumbListCtrl.IsInThumbnailView();
DWORD dwStyle = pView->m_ThumbListCtrl.GetStyle() & LVS_TYPEMASK;
BOOL bChecked = (dwStyle == LVS_ICON) && bThumbnail;
pCmdUI->SetRadio(bChecked ? 1 : 0);
}
}
void CMainFrame::OnHtmlHelp()
{
// TODO: Add your command handler code here
CString strPath, strFullName;
strPath = CAid::GetExeFilePath();
strPath = strPath.Left(strPath.GetLength() - 1);
int nIndex = -1;
nIndex = strPath.ReverseFind('\\');
if (nIndex != -1)
{
strPath = strPath.Left(nIndex);
}
strFullName = strPath + "\\Docs\\simplebrowse.htm";
if (_access(strFullName, 00) != -1)
::ShellExecute(NULL, TEXT("open"), strFullName,
NULL, NULL, SW_SHOWNORMAL);
}
void CMainFrame::OnDiy()
{
// TODO: Add your command handler code here
CString strPath, strFullName;
strPath = CAid::GetExeFilePath();
strPath = strPath.Left(strPath.GetLength
没有合适的资源?快使用搜索试试~ 我知道了~
SimpleBrowse 图片浏览器源代码1.0 - C++源码下载
共73个文件
h:31个
dll:11个
cpp:6个
5星 · 超过95%的资源 需积分: 9 76 下载量 161 浏览量
2009-02-23
10:29:33
上传
评论
收藏 515KB RAR 举报
温馨提示
SimpleBrowse是一款简洁易用,源码公开的图片浏览器。普通用户可以直接使用SimpleBrowse来浏览大量的精美图片,它短小精悍,浏览快速,生成的缩图精美漂亮,能浏览常见的多种图像格式。软件开发者则还可以参考其公开的源代码,使用其附带的thl.dll,自己动手制作一款类似的图片浏览器,或者在自己开发的软件中加入图片浏览的功能,而且,所需步骤非常简单,做起来非常容易。容易到什么程度?5条函数调用而已
资源推荐
资源详情
资源评论
收起资源包目录
cvery_9075676567.rar (73个子文件)
9075676567
Include
thumblistctrl.h 4KB
Rtftype.h 6KB
hyperlink.h 3KB
HtmlFile.h 2KB
OXURL.inl 2KB
SortedListCtrl.h 3KB
ItemInfo.h 700B
OXUNC.inl 2KB
NewEdit.h 10KB
ImgCon20.h 2KB
ImgFileInfo.h 1KB
FileInfo.h 1KB
ShellTree.h 3KB
ThumbObj.h 2KB
OXDIB.H 17KB
OXUNCStandardActor.h 15KB
OXURL.h 5KB
SortedHeaderCtrl.h 1KB
Aid.h 5KB
Effects.h 5KB
SHFile.h 1KB
ShellPidl.h 2KB
ThumbItemInfo.h 1KB
ResourceObj.h 3KB
oxHlfTne.h 13KB
OXUNC.h 18KB
bin
Awdcxc32.dll 6KB
SimpleBrowse.exe 40KB
thl.dll 168KB
Awcodc32.dll 24KB
Convert20.dll 184KB
Awresx32.dll 26KB
CJ60Lib.dll 236KB
Awview32.dll 10KB
Squeeze.dll 56KB
JPEG.dll 104KB
Awdenc32.dll 12KB
TIFF60.dll 192KB
Docs
simplebrowse_logo.gif 971B
howtodiy.htm 8KB
thalia_logo.jpg 2KB
simplebrowse_ui_240.jpg 13KB
simplebrowse_ui.jpg 72KB
simplebrowse.htm 3KB
Lib
thl.lib 151KB
Convert20.lib 25KB
CJ60Lib.lib 236KB
下载说明.htm 5KB
SimpleBrowse
Resource.h 1012B
SimpleBrowseDoc.cpp 2KB
LeftView.cpp 5KB
SimpleBrowse.dsw 547B
res
SimpleBrowse.ico 1KB
Toolbar.bmp 718B
thalia.bmp 5KB
SimpleBrowse.rc2 404B
SimpleBrowseDoc.ico 1KB
LeftView.h 2KB
SimpleBrowse.plg 2KB
SimpleBrowse.rc 13KB
SimpleBrowse.clw 4KB
SimpleBrowse.cpp 5KB
SimpleBrowse.opt 55KB
StdAfx.cpp 214B
MainFrm.cpp 8KB
MainFrm.h 2KB
SimpleBrowseDoc.h 2KB
StdAfx.h 1KB
SimpleBrowse.dsp 5KB
SimpleBrowseView.h 3KB
SimpleBrowse.h 1KB
SimpleBrowse.aps 37KB
SimpleBrowseView.cpp 4KB
共 73 条
- 1
billqiao00
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页