644 lines
16 KiB
C++
644 lines
16 KiB
C++
// TKImageDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "TKImageDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
TCHAR g_szDirName[256] = _T(""); //申请自己的16K缓冲区
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTKImageDlg dialog
|
|
|
|
IMPLEMENT_DYNAMIC(CTKImageDlg, CAcUiDialog)
|
|
CTKImageDlg::CTKImageDlg(UINT IDD, CWnd* pParent /*=NULL*/)
|
|
: CAcUiDialog(IDD, pParent), m_pPopupMenu(NULL)
|
|
{
|
|
//{{AFX_DATA_INIT(CTKImageDlg)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
m_bInit = FALSE;
|
|
m_bBiginEdit = FALSE;
|
|
m_bSort = FALSE;
|
|
m_bIsDelTree = FALSE;
|
|
m_nOldSizeX=558;
|
|
m_nOldSizeY=437;
|
|
|
|
// ZJQ add 2 lines
|
|
m_nIndex=-1;
|
|
m_nFindIndex=-1; // 当前查找索引项
|
|
m_bMultiSel=FALSE;
|
|
}
|
|
|
|
CTKImageDlg::~CTKImageDlg()
|
|
{
|
|
if(m_pPopupMenu) {
|
|
m_pPopupMenu->DestroyMenu();
|
|
delete m_pPopupMenu;
|
|
}
|
|
}
|
|
|
|
void CTKImageDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CAcUiDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CTKImageDlg)
|
|
DDX_Control(pDX, IDC_PIC_IMAGE, m_ImageBox);
|
|
DDX_Control(pDX, IDC_VSBAR, m_vsBar);
|
|
DDX_Control(pDX, IDC_S_DESCRIPTION, m_ctrlDescription);
|
|
DDX_Control(pDX, IDC_TK_LIST, m_listCtrl);
|
|
DDX_Control(pDX, IDC_TK_TREE, m_treeCtrl);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CTKImageDlg, CAcUiDialog)
|
|
//{{AFX_MSG_MAP(CTKImageDlg)
|
|
ON_WM_PAINT()
|
|
ON_WM_VSCROLL()
|
|
ON_WM_SIZE()
|
|
ON_COMMAND(ID_BLK_PAGEUP, OnBlkPageUp)
|
|
ON_COMMAND(ID_BLK_PAGEDOWN, OnBlkPageDown)
|
|
ON_WM_CREATE()
|
|
ON_COMMAND(IDOK, OnOK)
|
|
ON_WM_LBUTTONDBLCLK()
|
|
//}}AFX_MSG_MAP
|
|
ON_COMMAND_RANGE(ID_LAYOUT1X1, ID_LAYOUT5X4, OnLayout)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTKImageDlg message handlers
|
|
BOOL CTKImageDlg::SelectIndex(int selindex)
|
|
{
|
|
// 选择总目
|
|
if (!IsValid(selindex))
|
|
return FALSE;
|
|
int lastImage = CurImage();
|
|
int lastPage = CurPage();
|
|
m_nIndex = selindex;
|
|
int curPage = CurPage();
|
|
int curImage = CurImage();
|
|
|
|
if(curPage!=lastPage) { /*turn page*/
|
|
SetupImage(TRUE);
|
|
SwapFlipImage(-1, curImage);
|
|
m_vsBar.SetScrollPos(CurPage() * m_nPageRow); // 使滚动条跟着发生变化
|
|
} else {
|
|
SwapFlipImage(lastImage, curImage);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
void CTKImageDlg::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
if(m_bInit && (!nType || nType==SIZE_MAXIMIZED)) {
|
|
CSize sizeOld = sizeDlg;
|
|
sizeDlg.cx = cx;
|
|
sizeDlg.cy = cy;
|
|
long nIncY = sizeDlg.cy - sizeOld.cy;
|
|
long nIncX = sizeDlg.cx - sizeOld.cx;
|
|
ResetSize(nIncX, nIncY);
|
|
Wash(); // 刷新显示slide 之间的间隔
|
|
}
|
|
}
|
|
|
|
// 当对话框大小改变时:
|
|
void CTKImageDlg::ResetSize(long nIncX, long nIncY)
|
|
{
|
|
CRect rectImage;
|
|
m_ImageBox.GetWindowRect(rectImage);
|
|
ScreenToClient(rectImage);
|
|
|
|
CRect rectDescription, rectScroll, rectList, rectXbar;
|
|
|
|
m_ctrlDescription.GetWindowRect(rectDescription);
|
|
ScreenToClient(rectDescription);
|
|
m_vsBar.GetWindowRect(rectScroll);
|
|
ScreenToClient(rectScroll);
|
|
m_listCtrl.GetWindowRect(rectList);
|
|
ScreenToClient(rectList);
|
|
CWnd *pWnd = GetDlgItem(IDC_XBAR);
|
|
ASSERT(pWnd);
|
|
pWnd->GetWindowRect(rectXbar);
|
|
ScreenToClient(rectXbar);
|
|
|
|
m_ImageBox.MoveWindow(rectImage.left, rectImage.top,
|
|
rectImage.Width() + nIncX, rectImage.Height() + nIncY);
|
|
m_ctrlDescription.MoveWindow(rectDescription.left, rectDescription.top + nIncY,
|
|
rectDescription.Width() + nIncX, rectDescription.Height());
|
|
m_vsBar.MoveWindow(rectScroll.left + nIncX, rectScroll.top,
|
|
rectScroll.Width(), rectScroll.Height() + nIncY);
|
|
m_listCtrl.MoveWindow(rectList.left, rectList.top,
|
|
rectList.Width(), rectList.Height() + nIncY);
|
|
pWnd->MoveWindow(rectXbar.left, rectXbar.top,
|
|
rectXbar.Width(), rectXbar.Height() + nIncY);
|
|
|
|
}
|
|
|
|
|
|
void CTKImageDlg::Wash()
|
|
{
|
|
CRect rc;
|
|
CDC * pDC = m_ImageBox.GetDC();
|
|
m_ImageBox.GetClientRect(&rc);
|
|
rc.DeflateRect(1,1,1,1);
|
|
pDC->FillSolidRect(&rc, RGB(192,192,192));
|
|
m_ImageBox.ReleaseDC(pDC);
|
|
}
|
|
|
|
void CTKImageDlg::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
|
|
CAcUiDialog::OnPaint();
|
|
|
|
CRect rcClip, rcImage;
|
|
dc.GetClipBox(&rcClip);
|
|
m_ImageBox.GetWindowRect(&rcImage);
|
|
ScreenToClient(&rcImage);
|
|
if(!rcImage.IntersectRect(&rcImage, &rcClip))
|
|
return;
|
|
SetupImage(FALSE);
|
|
SwapFlipImage(-1, CurImage());
|
|
}
|
|
|
|
// 交换高亮图标
|
|
void CTKImageDlg::SwapFlipImage(int from_image, int to_image)
|
|
{
|
|
CClientDC dc(&m_ImageBox);
|
|
if(from_image>=0) {
|
|
CRect rect;
|
|
GetImageRect(from_image, rect);
|
|
CBrush brush(m_lstImage[from_image]->GetBkColor());
|
|
dc.FrameRect(&rect, &brush);
|
|
rect.DeflateRect(1,1);
|
|
dc.FrameRect(&rect, &brush);
|
|
rect.DeflateRect(1,1);
|
|
dc.FrameRect(&rect, &brush);
|
|
rect.DeflateRect(1,1);
|
|
dc.FrameRect(&rect, &brush);
|
|
}
|
|
if(to_image>=0) { // 为了加粗, 每条线均画两次
|
|
CRect rect;
|
|
GetImageRect(to_image, rect);
|
|
dc.Draw3dRect(rect,RGB(128,128,128),RGB(240,240,240)); //3D
|
|
rect.DeflateRect(1, 1);
|
|
dc.Draw3dRect(rect,RGB(128,128,128),RGB(240,240,240)); //3D
|
|
rect.DeflateRect(1,1);
|
|
CBrush brush(RGB(255,0,0));
|
|
dc.FrameRect(&rect, &brush);
|
|
rect.DeflateRect(1,1);
|
|
dc.FrameRect(&rect, &brush);
|
|
}
|
|
}
|
|
|
|
BOOL CTKImageDlg::IsPointOnImage(CPoint & pt)
|
|
{
|
|
int nnn = GetPageIndex(pt);
|
|
if(nnn<0) return FALSE;
|
|
return IsValid(CurPage() * PageSize() + nnn);
|
|
}
|
|
|
|
|
|
// 求给定的点在当前页的第几个 -1为没有点中
|
|
int CTKImageDlg::GetPageIndex(CPoint & pt)
|
|
{
|
|
CRect rc;
|
|
CPoint point = pt;
|
|
ClientToScreen(&point);
|
|
m_ImageBox.GetWindowRect(&rc);
|
|
rc.DeflateRect(2, 2);
|
|
if (!rc.PtInRect(point))
|
|
return -1;
|
|
|
|
point.x -= rc.left;
|
|
point.y -= rc.top;
|
|
m_ImageBox.GetClientRect(&rc);
|
|
rc.DeflateRect(1,1);
|
|
|
|
int uw = rc.Width() / m_nPageColumn;
|
|
int uh = rc.Height() / m_nPageRow;
|
|
int row = (point.y-1)/uh;
|
|
int col = (point.x-1)/uw;
|
|
return m_nPageColumn * row + col;
|
|
}
|
|
|
|
// 改变当前页的选中的Image
|
|
BOOL CTKImageDlg::SelectPageIndex(int selindex)
|
|
{
|
|
int lastImage = CurImage();
|
|
int curImage=selindex;
|
|
|
|
if(curImage == lastImage) return FALSE; //sr remove it 2002/7/25
|
|
int curPage=CurPage();
|
|
// 改变列表状态
|
|
int nIndex = curPage*PageSize() + curImage;
|
|
if(!IsValid(nIndex))
|
|
return FALSE;
|
|
m_nIndex = nIndex;
|
|
SwapFlipImage(lastImage, curImage);
|
|
if(!m_bMultiSel )
|
|
SetListHighLight();
|
|
return TRUE;
|
|
}
|
|
|
|
// 改变树、布局、初始 时调用
|
|
BOOL CTKImageDlg::InitVSBar()
|
|
{
|
|
int totalRec, pageSize, imageRowNum, imageColNum;
|
|
imageRowNum = m_nPageRow;
|
|
imageColNum = m_nPageColumn;
|
|
pageSize = imageRowNum * imageColNum;
|
|
|
|
totalRec = GetTotalRecords();
|
|
if(totalRec <= pageSize || totalRec == 0){
|
|
m_vsBar.ShowScrollBar(FALSE);
|
|
return FALSE;
|
|
}
|
|
else
|
|
m_vsBar.ShowScrollBar(TRUE);
|
|
|
|
SCROLLINFO scrollInfo;
|
|
scrollInfo.cbSize = sizeof(SCROLLINFO);
|
|
scrollInfo.fMask = SIF_ALL;
|
|
scrollInfo.nMin = 0;
|
|
scrollInfo.nMax = ((totalRec-1) / pageSize+1) * imageRowNum-1;
|
|
scrollInfo.nPage = imageRowNum;
|
|
scrollInfo.nPos = CurPage() * imageRowNum;
|
|
|
|
m_vsBar.SetScrollInfo(&scrollInfo, TRUE);
|
|
return TRUE;
|
|
}
|
|
|
|
void CTKImageDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
|
{
|
|
int nCurSel;
|
|
|
|
if(!IsMultSelected()){
|
|
if(m_listCtrl.GetItemState(m_nIndex,LVIS_SELECTED)){//如果已经选过了,取消选中
|
|
m_listCtrl.SetItemState(m_nIndex, 0, LVIS_SELECTED);
|
|
}
|
|
}
|
|
|
|
if(pScrollBar == &m_vsBar){
|
|
UINT nEndPos=pScrollBar->GetScrollPos();
|
|
switch(nSBCode){
|
|
case SB_THUMBPOSITION: //拖动滑块
|
|
if((m_nIndex % m_nPageColumn) == 0)
|
|
nCurSel = m_nPageColumn * nPos;
|
|
else // 保证每次滚动时当前图都再该列
|
|
nCurSel = m_nPageColumn * nPos + CurImage() % m_nPageColumn;
|
|
SelectIndex(nCurSel);
|
|
nEndPos = nPos;
|
|
break;
|
|
case SB_LINEDOWN:
|
|
if(m_nIndex > (GetTotalRecords() - m_nPageColumn)) break;
|
|
SelectIndex(m_nIndex + m_nPageColumn);
|
|
nEndPos += 1;
|
|
break;
|
|
case SB_PAGEDOWN:
|
|
GoPage(CurPage() + 1);
|
|
nEndPos += m_nPageRow;
|
|
break;
|
|
case SB_LINEUP:
|
|
if(m_nIndex < m_nPageColumn) break;
|
|
SelectIndex(m_nIndex - m_nPageColumn);
|
|
nEndPos -= 1;
|
|
break;
|
|
case SB_PAGEUP:
|
|
GoPage(CurPage() - 1);
|
|
nEndPos -= m_nPageRow;
|
|
break;
|
|
}
|
|
|
|
|
|
// if(!IsMultSelected()){
|
|
SetListHighLight();
|
|
// }
|
|
|
|
pScrollBar->SetScrollPos(nEndPos);
|
|
}
|
|
CAcUiDialog::OnVScroll(nSBCode, nPos, pScrollBar);
|
|
ResetStateText();
|
|
}
|
|
|
|
BOOL CTKImageDlg::IsMultSelected()
|
|
{
|
|
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
|
|
int len = 0;
|
|
if (pos == NULL)
|
|
return FALSE;
|
|
else
|
|
{
|
|
while (pos)
|
|
{
|
|
int nItem = m_listCtrl.GetNextSelectedItem(pos);
|
|
len++;
|
|
}
|
|
}
|
|
if(len > 1)
|
|
return TRUE;
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
void CTKImageDlg::SetListHighLight()
|
|
{
|
|
if(!IsValid(m_nIndex)) return;
|
|
ASSERT(m_nIndex>=0); // ZJQ modify here
|
|
m_listCtrl.SetFocus();
|
|
m_listCtrl.SetItemState(m_nIndex, LVIS_SELECTED, LVIS_SELECTED);
|
|
m_listCtrl.SetHotItem(m_nIndex);
|
|
m_listCtrl.EnsureVisible(m_nIndex, TRUE);
|
|
}
|
|
|
|
void CTKImageDlg::HideDialog(BOOL Flag)
|
|
{
|
|
if (Flag) {
|
|
GetParent()->EnableWindow(TRUE);
|
|
GetParent()->SetFocus();
|
|
GetParent()->SetActiveWindow();
|
|
ShowWindow(SW_HIDE);
|
|
}
|
|
else {
|
|
GetParent()->EnableWindow(FALSE);
|
|
EnableWindow(TRUE);
|
|
SetActiveWindow();
|
|
ShowWindow(SW_SHOW);
|
|
}
|
|
}
|
|
|
|
// 翻到第n页
|
|
// 返回: TRUE -- 成功的翻页 FALSE -- 不能翻到指定的页
|
|
BOOL CTKImageDlg::GoPage(int destPage)
|
|
{
|
|
// 跳至指定页
|
|
if(destPage<0 || destPage >= TotalPages())
|
|
return FALSE;
|
|
|
|
if(CurPage() != destPage) {
|
|
m_nIndex = destPage * PageSize() + CurImage();
|
|
if(!IsCurrentValid())
|
|
m_nIndex = GetTotalRecords()-1;
|
|
SetupImage(TRUE);
|
|
SwapFlipImage(-1, CurImage());
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
int CTKImageDlg::CurPage()
|
|
{
|
|
int curPage = m_nIndex / PageSize();
|
|
if(m_nIndex < 0) return 0; //-1;
|
|
else if(m_nIndex >= GetTotalRecords())
|
|
return TotalPages() - 1;
|
|
else return curPage;
|
|
}
|
|
|
|
void CTKImageDlg::GetImageRect(int nindex, CRect & rcImage)
|
|
{
|
|
CRect rc;
|
|
m_ImageBox.GetClientRect(&rc);
|
|
rc.DeflateRect(2,2);
|
|
|
|
if (nindex<0 || nindex >= PageSize()) {
|
|
rcImage.SetRectEmpty();
|
|
return;
|
|
}
|
|
|
|
int row = nindex/m_nPageColumn;
|
|
int col = nindex - row * m_nPageColumn;
|
|
|
|
rcImage.left = rc.left + rc.Width() * col / m_nPageColumn;
|
|
rcImage.top = rc.top + rc.Height() * row / m_nPageRow;
|
|
rcImage.right = rcImage.left + rc.Width() / m_nPageColumn;
|
|
rcImage.bottom = rcImage.top + rc.Height() / m_nPageRow;
|
|
rcImage.DeflateRect(2, 2);
|
|
}
|
|
|
|
BOOL CTKImageDlg::IsSelected(int index)
|
|
{
|
|
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
|
|
if (pos == NULL)
|
|
return FALSE;
|
|
else
|
|
{
|
|
while (pos)
|
|
{
|
|
int nItem = m_listCtrl.GetNextSelectedItem(pos);
|
|
if(nItem == index){
|
|
return TRUE;
|
|
}
|
|
}
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
BOOL CTKImageDlg::SetupImage(BOOL bReload)
|
|
{
|
|
ASSERT(m_lstImage.Length() == PageSize());
|
|
CDC *pDC = m_ImageBox.GetDC();
|
|
|
|
int pageSize = PageSize();
|
|
for(int i=0; i<pageSize; i++) {
|
|
int dd = CurPage();
|
|
int index = CurPage()*pageSize + i;
|
|
CImageDC *pImageDC = m_lstImage[i];
|
|
CRect rect;
|
|
GetImageRect(i, rect);
|
|
pImageDC->InitDC(pDC, rect, GetAcadBackColor());
|
|
|
|
if(bReload) {
|
|
SetupNthImage(index, pImageDC);
|
|
}
|
|
else {
|
|
if(IsSelected(index) && m_bMultiSel)
|
|
pImageDC->SetBackColor(RGB(0,128,192));
|
|
else
|
|
pImageDC->SetBackColor(GetAcadBackColor());
|
|
if(IsValid(index)) {
|
|
pImageDC->Redraw();
|
|
}
|
|
}
|
|
pImageDC->SetDC(NULL);
|
|
}
|
|
|
|
m_ImageBox.ReleaseDC(pDC);
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
// Finished
|
|
void CTKImageDlg::SetPageSize(int nRow, int nColumn)
|
|
{
|
|
m_nPageColumn = nColumn;
|
|
m_nPageRow = nRow;
|
|
m_lstImage.Reset();
|
|
for(int i=nRow*nColumn; i>0; i--)
|
|
m_lstImage.Append(new CImageDC);
|
|
}
|
|
|
|
|
|
|
|
BOOL CTKImageDlg::IsInRect(UINT CtrlID, CPoint point)
|
|
{
|
|
CRect rect;
|
|
CWnd *pWnd=GetDlgItem(CtrlID);
|
|
ASSERT(pWnd);
|
|
pWnd->GetWindowRect(rect);
|
|
if(point.x<rect.BottomRight().x && point.y<rect.BottomRight().y && point.x >rect.TopLeft().x && point.y >rect.TopLeft().y)
|
|
return TRUE;
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
void CTKImageDlg::SetStateText(const TCHAR *str)
|
|
{
|
|
CWnd *pWnd = GetDlgItem(IDC_S_DESCRIPTION);
|
|
ASSERT(pWnd);
|
|
pWnd->SetWindowText(str);
|
|
}
|
|
|
|
void CTKImageDlg::OnBlkPageUp()
|
|
{
|
|
if(!IsMultSelected()){
|
|
if(m_listCtrl.GetItemState(m_nIndex,LVIS_SELECTED))//如果已经选过了,取消选中
|
|
m_listCtrl.SetItemState(m_nIndex, 0, LVIS_SELECTED);
|
|
}
|
|
CScrollBar* pScrollBar;
|
|
pScrollBar = &m_vsBar;
|
|
UINT nEndPos = pScrollBar->GetScrollPos();
|
|
GoPage(CurPage() - 1);
|
|
nEndPos -= m_nPageRow;
|
|
if(!IsMultSelected())
|
|
SetListHighLight();
|
|
pScrollBar->SetScrollPos(nEndPos);
|
|
ResetStateText();
|
|
}
|
|
|
|
void CTKImageDlg::OnBlkPageDown()
|
|
{
|
|
if(!IsMultSelected()){
|
|
if(m_listCtrl.GetItemState(m_nIndex,LVIS_SELECTED))//如果已经选过了,取消选中
|
|
m_listCtrl.SetItemState(m_nIndex, 0, LVIS_SELECTED);
|
|
}
|
|
CScrollBar* pScrollBar;
|
|
pScrollBar = &m_vsBar;
|
|
UINT nEndPos = pScrollBar->GetScrollPos();
|
|
GoPage(CurPage() + 1);
|
|
nEndPos += m_nPageRow;
|
|
if(!IsMultSelected())
|
|
SetListHighLight();
|
|
pScrollBar->SetScrollPos(nEndPos);
|
|
ResetStateText();
|
|
}
|
|
// 布局
|
|
void CTKImageDlg::OnLayout(UINT nID)
|
|
{
|
|
//CTemporaryResourceOverride vTemp;
|
|
switch (nID)
|
|
{
|
|
case ID_LAYOUT1X1:
|
|
SetPageSize(1,1);
|
|
break;
|
|
case ID_LAYOUT2X1:
|
|
SetPageSize(2,1);
|
|
break;
|
|
case ID_LAYOUT2X2:
|
|
SetPageSize(2,2);
|
|
break;
|
|
case ID_LAYOUT3X2:
|
|
SetPageSize(3,2);
|
|
break;
|
|
case ID_LAYOUT3X3:
|
|
SetPageSize(3,3);
|
|
break;
|
|
case ID_LAYOUT4X3:
|
|
SetPageSize(4,3);
|
|
break;
|
|
case ID_LAYOUT4X4:
|
|
SetPageSize(4,4);
|
|
break;
|
|
case ID_LAYOUT5X4:
|
|
SetPageSize(5,4);
|
|
break;
|
|
}
|
|
Wash();
|
|
SetupImage(TRUE);
|
|
SelectIndex(m_nIndex);
|
|
SwapFlipImage(-1, CurImage());
|
|
SetStateText(_T("图标排列更改完毕!"));
|
|
InitVSBar();
|
|
ResetStateText();
|
|
}
|
|
|
|
BOOL CTKImageDlg::OnInitDialog()
|
|
{
|
|
CAcUiDialog::OnInitDialog();
|
|
|
|
CRect rectDlg;
|
|
GetClientRect(rectDlg);
|
|
sizeDlg.cx = rectDlg.Width();
|
|
sizeDlg.cy = rectDlg.Height();
|
|
long nIncY = sizeDlg.cy - m_nOldSizeY; // 对话框绝对尺寸
|
|
long nIncX = sizeDlg.cx - m_nOldSizeX;
|
|
m_bInit = TRUE;
|
|
ResetSize(nIncX, nIncY);
|
|
|
|
m_ySplitter.BindWithControl(this, IDC_YBAR);
|
|
m_ySplitter.AttachAsAbovePane(IDC_TK_TREE);
|
|
m_ySplitter.AttachAsBelowPane(IDC_TK_LIST);
|
|
m_ySplitter.RecalcLayout();
|
|
m_ySplitter.SetMinHeight(50, 50);
|
|
m_xSplitter.BindWithControl(this, IDC_XBAR);
|
|
m_xSplitter.AttachAsLeftPane(IDC_TK_TREE);
|
|
m_xSplitter.AttachAsLeftPane(IDC_YBAR);
|
|
m_xSplitter.AttachAsLeftPane(IDC_TK_LIST);
|
|
m_xSplitter.AttachAsRightPane(IDC_PIC_IMAGE);
|
|
m_xSplitter.RecalcLayout();
|
|
m_xSplitter.SetMinWidth(20, 320);
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
int CTKImageDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
{
|
|
if (CAcUiDialog::OnCreate(lpCreateStruct) == -1)
|
|
return -1;
|
|
|
|
CRect rect;
|
|
GetClientRect(rect);
|
|
m_nOldSizeX=rect.Width();
|
|
m_nOldSizeY=rect.Height();
|
|
return 0;
|
|
}
|
|
|
|
void CTKImageDlg::OnOK()
|
|
{
|
|
if(IsZoomed())
|
|
CAcUiDialog::OnCancel();
|
|
else
|
|
CAcUiDialog::OnOK();
|
|
|
|
}
|
|
|
|
void CTKImageDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
|
|
{
|
|
if(IsPointOnImage(point) && (GetPageIndex(point) >= 0) && (!m_bBiginEdit)) {
|
|
if(GetCapture()==this) {
|
|
ReleaseCapture();
|
|
m_treeCtrl.SelectDropTarget(NULL);
|
|
}
|
|
OnOK();
|
|
} else {
|
|
CAcUiDialog::OnLButtonDblClk(nFlags, point);
|
|
}
|
|
}
|