139 lines
4.2 KiB
C++
139 lines
4.2 KiB
C++
#if !defined(AFX_TKIMAGEDLG_H__6F7C565B_AD38_4CE9_BAFC_351947395540__INCLUDED_)
|
|
#define AFX_TKIMAGEDLG_H__6F7C565B_AD38_4CE9_BAFC_351947395540__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
// TKImageDlg.h : header file
|
|
//
|
|
#include "Resource.h"
|
|
#include "bloption.h" // Added by ClassView
|
|
#include "adui.h"
|
|
#include "acui.h"
|
|
#include "xySplitterWnd.h"
|
|
#include "XToolBarCtrl.h"
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTKImageDlg dialog
|
|
|
|
|
|
class CTKImageDlg : public CAcUiDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
DECLARE_DYNAMIC(CTKImageDlg)
|
|
CTKImageDlg(UINT IDD, CWnd* pParent = NULL); // standard constructor
|
|
~CTKImageDlg();
|
|
// Dialog Data
|
|
//{{AFX_DATA(CTKImageDlg)
|
|
//enum { IDD = IDD_BLOCK };
|
|
CStatic m_ImageBox;
|
|
CScrollBar m_vsBar;
|
|
CListCtrl m_listCtrl;
|
|
CTreeCtrl m_treeCtrl;
|
|
CStatic m_ctrlDescription;
|
|
//}}AFX_DATA
|
|
XToolBarCtrl m_ToolBar;
|
|
CMenu *m_pPopupMenu;
|
|
CySplitterWnd m_ySplitter;
|
|
CxSplitterWnd m_xSplitter;
|
|
CSize sizeDlg;
|
|
BOOL m_bInit;
|
|
BOOL m_bMultiSel; //多选
|
|
XString m_xsFilePath; //文件路径
|
|
static int m_nMaxRecentBlb; //注册表记录的最近使用的图库的最大值
|
|
BOOL m_bBiginEdit; //LIST改名标志
|
|
|
|
UINT m_nOldSizeX, m_nOldSizeY;
|
|
public:
|
|
BOOL SetupImage(BOOL bReload = TRUE); //显示图像
|
|
BOOL GoPage(int destPage);
|
|
void Wash();
|
|
BOOL SelectIndex(int selindex); //把列表置为给定值后发生的动作
|
|
void ResetSize(long nIncX, long nIncY);
|
|
void SetListHighLight();
|
|
BOOL InitVSBar();
|
|
int CurPage();
|
|
int CurImage() { //0 ~ pageSize, -1 --not ready
|
|
return (IsCurrentValid() ? (m_nIndex-CurPage() * PageSize()) : -1);
|
|
}
|
|
BOOL IsCurrentValid() { return (m_nIndex >= 0 && m_nIndex<GetTotalRecords()); }
|
|
virtual int GetTotalRecords()=0;//取得当前链表的节点个数
|
|
int PageSize() {
|
|
return (m_nPageColumn * m_nPageRow);
|
|
}
|
|
|
|
// 取得当前页第n个图标的Rect
|
|
void GetImageRect(int nindex, CRect& rcImage);
|
|
virtual void SetupNthImage(int index, CImageDC* pImageDC) = 0;
|
|
int TotalPages() { // 0--not ready, >0--OK
|
|
int len = GetTotalRecords();
|
|
return (len>0 ? ((len-1)/PageSize()+1) : 0);
|
|
}
|
|
int TotalRows() { // 0--not ready, >0--OK
|
|
int len = GetTotalRecords();
|
|
return (len>0 ? ((len-1)/m_nPageColumn + 1) : 0);
|
|
}
|
|
|
|
BOOL IsValid(int);
|
|
virtual void SwapFlipImage(int from_image, int to_image);
|
|
BOOL IsPointOnImage(CPoint& pt);
|
|
int GetPageIndex(CPoint& pt); //求给定的点在当前页的第几个
|
|
BOOL SelectPageIndex(int selindex); //把页号置为给定值后发生的动作
|
|
|
|
void SetPageSize(int nRow, int nColumn);
|
|
void SetStateText(const TCHAR *str);
|
|
virtual void ResetStateText() = 0;
|
|
|
|
BOOL IsInRect(UINT CtrlID, CPoint point);
|
|
void HideDialog(BOOL Flag);
|
|
BOOL IsMultSelected();
|
|
BOOL IsSelected(int index);
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CTKImageDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
DList<DwbStruct> m_lstFindBlk; //当前的查找列表
|
|
DList<CImageDC> m_lstImage;
|
|
static int m_nPageRow; // 行数
|
|
static int m_nPageColumn; // 列数
|
|
int m_nIndex; // 起始值为 0
|
|
int m_nFindIndex; // 当前查找索引项
|
|
BOOL m_bSort;
|
|
BOOL m_bIsDelTree;
|
|
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
afx_msg void OnLayout(UINT nID);
|
|
//{{AFX_MSG(CTKImageDlg)
|
|
afx_msg void OnPaint();
|
|
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnBlkPageUp();
|
|
afx_msg void OnBlkPageDown();
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
afx_msg void OnOK();
|
|
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
inline BOOL CTKImageDlg::IsValid(int nIndex)
|
|
{
|
|
if(nIndex < 0 || nIndex >= GetTotalRecords())
|
|
return FALSE;
|
|
return TRUE;
|
|
}
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_TKIMAGEDLG_H__6F7C565B_AD38_4CE9_BAFC_351947395540__INCLUDED_)
|