162 lines
3.8 KiB
C++
162 lines
3.8 KiB
C++
#include "stdafx.h"
|
|
#include "GLJCDlg.h"
|
|
#include "JCXCDlg.h"
|
|
#include "JCLQDlg.h"
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CGLJCDlg, CDialog)
|
|
|
|
CGLJCDlg::CGLJCDlg(CWnd* pParent ) :
|
|
CDialog(CGLJCDlg::IDD, pParent)
|
|
, m_pWndJCLQ(NULL)
|
|
, m_pWndJCXC(NULL)
|
|
, m_pNodeJCLQ(NULL)
|
|
, m_pNodeJCXC(NULL)
|
|
{
|
|
m_pWndJCXC = new CJCXCDlg();
|
|
m_pWndJCLQ = new CJCLQDlg();
|
|
}
|
|
|
|
CGLJCDlg::~CGLJCDlg()
|
|
{
|
|
if (m_pWndJCXC)
|
|
{
|
|
m_pWndJCXC->DestroyWindow();
|
|
DELETE_PTR(m_pWndJCXC);
|
|
m_pWndJCXC = NULL;
|
|
}
|
|
if (m_pWndJCLQ)
|
|
{
|
|
m_pWndJCLQ->DestroyWindow();
|
|
DELETE_PTR(m_pWndJCLQ);
|
|
m_pWndJCLQ = NULL;
|
|
}
|
|
}
|
|
void CGLJCDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_TAB, m_wndTabCtrl);
|
|
}
|
|
|
|
BOOL CGLJCDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
initTabCtrl();
|
|
return TRUE;
|
|
}
|
|
|
|
void CGLJCDlg::initTabCtrl()
|
|
{
|
|
if (!m_pNodeJCLQ || !m_pNodeJCXC) return;
|
|
|
|
m_wndTabCtrl.InsertItem(0, _T("交叉下沉"));
|
|
m_wndTabCtrl.InsertItem(1, _T("交叉隆起"));
|
|
m_wndTabCtrl.HighlightItem(0);
|
|
m_wndTabCtrl.HighlightItem(1);
|
|
|
|
m_pWndJCXC->SetFnctNode(m_pNodeJCXC);
|
|
m_pWndJCLQ->SetFnctNode(m_pNodeJCLQ);
|
|
|
|
m_pWndJCXC->Create(IDD_JCXC_DLG, &m_wndTabCtrl);
|
|
m_pWndJCLQ->Create(IDD_JCLQ_DLG, &m_wndTabCtrl);
|
|
|
|
DWORD styleJCXC = ::GetWindowLong(m_pWndJCXC->GetSafeHwnd(), GWL_STYLE);
|
|
DWORD exStyleJCXC = ::GetWindowLong(m_pWndJCXC->GetSafeHwnd(), GWL_EXSTYLE);
|
|
styleJCXC &= ~WS_DLGFRAME;
|
|
styleJCXC &= ~WS_POPUP;
|
|
styleJCXC &= ~WS_BORDER;
|
|
styleJCXC &= ~DS_3DLOOK;
|
|
styleJCXC &= ~DS_MODALFRAME;
|
|
exStyleJCXC &= ~WS_EX_DLGMODALFRAME;
|
|
styleJCXC |= WS_CHILD;
|
|
::SetWindowLong(m_pWndJCXC->GetSafeHwnd(), GWL_STYLE, styleJCXC);
|
|
::SetWindowLong(m_pWndJCXC->GetSafeHwnd(), GWL_EXSTYLE, exStyleJCXC);
|
|
|
|
DWORD styleJCLQ = ::GetWindowLong(m_pWndJCLQ->GetSafeHwnd(), GWL_STYLE);
|
|
DWORD exStyleJCLQ = ::GetWindowLong(m_pWndJCLQ->GetSafeHwnd(), GWL_EXSTYLE);
|
|
styleJCLQ &= ~WS_DLGFRAME;
|
|
styleJCLQ &= ~WS_POPUP;
|
|
styleJCLQ &= ~WS_BORDER;
|
|
styleJCLQ &= ~DS_3DLOOK;
|
|
styleJCLQ &= ~DS_MODALFRAME;
|
|
exStyleJCLQ &= ~WS_EX_DLGMODALFRAME;
|
|
styleJCLQ |= WS_CHILD;
|
|
::SetWindowLong(m_pWndJCLQ->GetSafeHwnd(), GWL_STYLE, styleJCLQ);
|
|
::SetWindowLong(m_pWndJCLQ->GetSafeHwnd(), GWL_EXSTYLE, exStyleJCLQ);
|
|
m_pWndJCLQ->SetParent(&m_wndTabCtrl);
|
|
m_pWndJCXC->SetParent(&m_wndTabCtrl);
|
|
|
|
m_pWndJCXC->ShowWindow(SW_SHOW);
|
|
m_pWndJCLQ->ShowWindow(SW_HIDE);
|
|
|
|
AdjustSize();
|
|
}
|
|
|
|
void CGLJCDlg::AdjustSize()
|
|
{
|
|
//左右边距 7 Tab 页高度 一般 20
|
|
CRect rcDlg;
|
|
GetWindowRect(&rcDlg);
|
|
|
|
CRect rcTabTitle;
|
|
m_wndTabCtrl.GetItemRect(0,rcTabTitle);
|
|
|
|
CRect rcJcXc;
|
|
m_pWndJCXC->GetWindowRect(&rcJcXc);
|
|
|
|
int nDW = rcDlg.Width();
|
|
int nDh = rcDlg.Height();
|
|
rcDlg.InflateRect(0,0,rcJcXc.Width() - nDW + 14,rcJcXc.Height() - nDh + 7 + rcTabTitle.Height());
|
|
MoveWindow(rcDlg);
|
|
CenterWindow();
|
|
|
|
CRect rcTab;
|
|
GetClientRect(&rcTab);
|
|
rcTab.DeflateRect(7,7,7,7);
|
|
m_wndTabCtrl.MoveWindow(rcTab);
|
|
|
|
CRect rcWnd;
|
|
m_wndTabCtrl.GetClientRect(&rcWnd);
|
|
rcWnd.DeflateRect(0,rcTabTitle.Height(),0,0);
|
|
m_pWndJCXC->MoveWindow(rcWnd);
|
|
m_pWndJCLQ->MoveWindow(rcWnd);
|
|
|
|
CRect rcOk,rcCan;
|
|
m_pWndJCXC->GetDlgItem(IDOK)->GetWindowRect(&rcOk);
|
|
m_pWndJCXC->GetDlgItem(IDCANCEL)->GetWindowRect(&rcCan);
|
|
|
|
m_pWndJCLQ->ScreenToClient(rcOk);
|
|
m_pWndJCLQ->ScreenToClient(rcCan);
|
|
|
|
m_pWndJCLQ->GetDlgItem(IDOK)->MoveWindow(&rcOk);
|
|
m_pWndJCLQ->GetDlgItem(IDCANCEL)->MoveWindow(&rcCan);
|
|
}
|
|
|
|
void CGLJCDlg::SetCrossSectionScr(LPCTSTR src)
|
|
{
|
|
m_pWndJCLQ->SetCrossSectionScr(src);
|
|
m_pWndJCXC->SetCrossSectionScr(src);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CGLJCDlg, CDialog)
|
|
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB, &CGLJCDlg::OnTcnSelchangeTab)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
void CGLJCDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
*pResult = 0;
|
|
|
|
int nCul = m_wndTabCtrl.GetCurSel();
|
|
|
|
if (nCul == 0) // 交叉下沉
|
|
{
|
|
m_pWndJCXC->ShowWindow(SW_SHOW);
|
|
m_pWndJCLQ->ShowWindow(SW_HIDE);
|
|
}
|
|
else
|
|
{
|
|
m_pWndJCXC->ShowWindow(SW_HIDE);
|
|
m_pWndJCLQ->ShowWindow(SW_SHOW);
|
|
}
|
|
} |