Files
geomative/GeomativeStudio/cpp/Views/opcreatesfdlg.cpp
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

175 lines
4.2 KiB
C++

// opcreatesfdlg.cpp : implementation file
//
#include "stdafx.h"
#include "geomative.h"
#include "opcreatesfdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COpCreateSFDlg dialog
extern HHOOK hHook;
extern LRESULT __stdcall CBTHookProc(long nCode, WPARAM wParam, LPARAM lParam);
COpCreateSFDlg::COpCreateSFDlg(CWnd* pParent /*=NULL*/)
: CDialog(COpCreateSFDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(COpCreateSFDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
COpCreateSFDlg::COpCreateSFDlg(INT_PTR* pRet, CWnd* pParent /*=NULL*/)
: CDialog(COpCreateSFDlg::IDD, pParent)
{
m_pRet = pRet;
}
void COpCreateSFDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COpCreateSFDlg)
DDX_Control(pDX, IDC_SPT, m_sptList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COpCreateSFDlg, CDialog)
//{{AFX_MSG_MAP(COpCreateSFDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COpCreateSFDlg message handlers
BOOL COpCreateSFDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CString strColTitle;
int iColIndex = (int)VAL_ZERO;
m_sptList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP
| LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES);
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_CN);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_SNAME);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_EAMOUNT);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_CHAMOUNT);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_TPAMOUNT);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_DEFINER);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_DEDATE);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
iColIndex++;
strColTitle.Empty();
strColTitle.LoadString(IDS_DB_SCON_DESC);
m_sptList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COpCreateSFDlg::OnOK()
{
// TODO: Add extra validation here
CString szCaption;
bool bIsSelect = false;
int iIndex = (int)VAL_ZERO;
while (iIndex <= (m_sptList.GetItemCount() - 1))
{
if (m_sptList.GetCheck(iIndex++))
{
bIsSelect = true;
break;
}
}
UpdateData(TRUE);
if (true != bIsSelect)
{
szCaption.Empty();
szCaption.LoadString(IDS_OP_DC_SCON_NULL);
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
MessageBox(szCaption, NULL, MB_ICONEXCLAMATION);
GetDlgItem(IDC_SPT)->SetFocus();
}
else
{
AfxGetMainWnd()->EnableWindow();
*m_pRet = RET_OK;
}
// CDialog::OnOK();
}
BOOL COpCreateSFDlg::Create(UINT nID, CWnd* pParentWnd)
{
// TODO: Add your specialized code here and/or call the base class
pParentWnd->EnableWindow(FALSE);
return CDialog::Create(IDD, pParentWnd);
}
void COpCreateSFDlg::OnCancel()
{
// TODO: Add extra cleanup here
AfxGetMainWnd()->EnableWindow();
*m_pRet = RET_CANCEL;
CDialog::OnCancel();
}
BOOL COpCreateSFDlg::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
OnCancel();
return CDialog::DestroyWindow();
}
BOOL COpCreateSFDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{
return TRUE;
}
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
{
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}