Files
envi-code/SourceCode/Code2026/tg_shs/shs_blklib/TKImageDlg.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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_)