// NewTKWDlg.cpp : implementation file // #include "stdafx.h" #include "NewTKWDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CNewTKWDlg dialog BOOL CALLBACK FileOpenHookProc(HWND hDlg, UINT message,WPARAM wParam,LPARAM lParam) { if(message == WM_NOTIFY){ LPOFNOTIFY lpOfn = (LPOFNOTIFY)lParam; if(lpOfn->hdr.code==CDN_INITDONE){ HWND hItem1 = GetDlgItem(hDlg, IDC_RADIO_MUTIVIEW); HWND hItem2 = GetDlgItem(hDlg, IDC_RADIO_NORM); EnableWindow(hItem1, FALSE); EnableWindow(hItem2, FALSE); CButton but; but.Attach(hItem2); but.SetCheck(1); but.Detach(); } else if(lpOfn->hdr.code == CDN_TYPECHANGE){ HWND hItem1 = GetDlgItem(hDlg, IDC_RADIO_MUTIVIEW); HWND hItem2 = GetDlgItem(hDlg, IDC_RADIO_NORM); if(lpOfn->lpOFN->nFilterIndex == 1){ // TKW EnableWindow(hItem1, FALSE); EnableWindow(hItem2, FALSE); } else if(lpOfn->lpOFN->nFilterIndex == 2){ // TK EnableWindow(hItem1, TRUE); EnableWindow(hItem2, TRUE); } } else if(lpOfn->hdr.code == CDN_FILEOK){ } } return FALSE; } CNewTKWDlg::CNewTKWDlg(CString csTitle, CString csFilter, CWnd* pParent /*=NULL*/) : CFileDialog(TRUE,_T("*.tkw"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, csFilter //modify by xlc on 091105 R18不使用Vista风格 #if ADS>17 ,0,0,FALSE #endif ) { m_ofn.lpstrTitle = csTitle; m_csTitle = csTitle; SetTemplate(0, IDD_DLG_NEWTKW); //{{AFX_DATA_INIT(CNewTKWDlg) m_iTKType = 1; //}}AFX_DATA_INIT if(csFilter == _T("上华图库组文件 (*.TKW) |*.TKW|上华图库文件 (*.TK) |*.tk||")) m_bNeedTK = FALSE; else m_bNeedTK = TRUE; } /*CNewTKWDlg::CNewTKWDlg(BOOL bNeedTK, CWnd* pParent) : CFileDialog(TRUE,_T("*.tkw"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T(_T("上华图库组文件 (*.TKW) |*.TKW|上华图库文件 (*.TK) |*.tk||"))) { SetTemplate(0, IDD_DLG_NEWTKW); //{{AFX_DATA_INIT(CNewTKWDlg) m_iTKType = 1; //}}AFX_DATA_INIT //m_ofn.lpfnHook = (LPOFNHOOKPROC)MakeProcInstance(FileOpenHookProc, NULL); m_bNeedTK = bNeedTK; } */ void CNewTKWDlg::DoDataExchange(CDataExchange* pDX) { CFileDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNewTKWDlg) DDX_Radio(pDX, IDC_RADIO_MUTIVIEW, m_iTKType); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CNewTKWDlg, CFileDialog) //{{AFX_MSG_MAP(CNewTKWDlg) ON_BN_CLICKED(IDC_RADIO_MUTIVIEW, OnRadioMutiview) ON_BN_CLICKED(IDC_RADIO_NORM, OnRadioNorm) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CNewTKWDlg message handlers BOOL CNewTKWDlg::OnInitDialog() { CFileDialog::OnInitDialog(); GetParent()->GetDlgItem(IDOK)->SetWindowText(m_csTitle); if(!m_bNeedTK) { CWnd *pWnd1 = GetDlgItem(IDC_RADIO_MUTIVIEW); CWnd *pWnd2 = GetDlgItem(IDC_RADIO_NORM); pWnd1->EnableWindow(FALSE); pWnd2->EnableWindow(FALSE); } UpdateData(FALSE); return TRUE; } void CNewTKWDlg::OnTypeChange() { UpdateData(TRUE); CWnd *pWnd1 = GetDlgItem(IDC_RADIO_MUTIVIEW); CWnd *pWnd2 = GetDlgItem(IDC_RADIO_NORM); if(m_ofn.nFilterIndex == 1){ // TKW pWnd1->EnableWindow(FALSE); pWnd2->EnableWindow(FALSE); } else if(m_ofn.nFilterIndex == 2){ // TK pWnd1->EnableWindow(TRUE); pWnd2->EnableWindow(TRUE); } } void CNewTKWDlg::OnRadioMutiview() { UpdateData(TRUE); } void CNewTKWDlg::OnRadioNorm() { UpdateData(TRUE); }