// maindlg.h : interface of the CMainDlg class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_MAINDLG_H__D0947DE9_4DE3_477B_82AF_11D43DE03E5A__INCLUDED_)
#define AFX_MAINDLG_H__D0947DE9_4DE3_477B_82AF_11D43DE03E5A__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
CEdit m_editml;
ACMPLLib::IAutoCompleteMLPtr m_spac;
ACMPLLib::IStringStoragePtr m_spStrings;
MSXML::IXMLDOMDocumentPtr m_spdoc;
CTrackBarCtrl m_slider;
CTrackBarCtrl m_slider2;
BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
COMMAND_ID_HANDLER(IDOK, OnOK)
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
COMMAND_RANGE_HANDLER(IDC_CHKENABLE, IDC_CHKTT, OnClickedCheckBox)
COMMAND_HANDLER(IDC_EDITLINES, EN_CHANGE, OnChangeEditlines)
COMMAND_HANDLER(IDC_BTNINIT, BN_CLICKED, OnClickedBtninit)
COMMAND_HANDLER(IDC_BTNLOAD, BN_CLICKED, OnClickedBtnload)
COMMAND_HANDLER(IDC_BTNSAVE, BN_CLICKED, OnClickedBtnsave)
COMMAND_HANDLER(IDC_BTNLOAD2, BN_CLICKED, OnClickedBtnload2)
COMMAND_HANDLER(IDC_BTNSAVE2, BN_CLICKED, OnClickedBtnsave2)
COMMAND_HANDLER(IDC_BTNLOAD3, BN_CLICKED, OnClickedBtnload3)
COMMAND_HANDLER(IDC_BTNSAVE3, BN_CLICKED, OnClickedBtnsave3)
MESSAGE_HANDLER(WM_HSCROLL, OnHScroll)
MESSAGE_HANDLER(WM_VSCROLL, OnVScroll)
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
// center the dialog on the screen
CenterWindow();
// set icons
HICON hIcon = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_ICON, ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON), LR_DEFAULTCOLOR);
SetIcon(hIcon, TRUE);
HICON hIconSmall = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR);
SetIcon(hIconSmall, FALSE);
try {
_com_util::CheckError(m_spac.CreateInstance(__uuidof(ACMPLLib::AutoCompleteML)));
_com_util::CheckError(m_spStrings.CreateInstance(__uuidof(ACMPLLib::StringStorage)));
_com_util::CheckError(m_spdoc.CreateInstance(__uuidof(MSXML::DOMDocument)));
_bstr_t bsdoc(L"<root></root>");
m_spdoc->loadXML(bsdoc);
m_editml.m_hWnd = GetDlgItem(IDC_EDIT1);
m_spac->Init( (long)m_editml.m_hWnd, m_spStrings );
}
catch (_com_error&) {
MessageBox("com error occured",_T(""),MB_OK|MB_ICONERROR);
}
// init sliders
m_slider.m_hWnd = GetDlgItem(IDC_SLIDER1);
CRect rcs;
m_slider.GetWindowRect(rcs);
m_slider.SetRange( 40, 40+rcs.Width() );
m_slider.SetPos(40+rcs.Width());
m_slider2.m_hWnd = GetDlgItem(IDC_SLIDER2);
m_slider2.GetWindowRect(rcs);
m_slider2.SetRange( 40, 40+rcs.Height() );
m_slider2.SetPos(40+rcs.Height());
BOOL bh;
OnClickedBtninit(0,0,0,bh);
m_editml.SetFocus();
UpdateACMLSettings();
return FALSE;
}
LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
CSimpleDialog<IDD_ABOUTBOX, FALSE> dlg;
dlg.DoModal();
return 0;
}
LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
// TODO: Add validation code
EndDialog(wID);
return 0;
}
LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
EndDialog(wID);
return 0;
}
BOOL UpdateACMLSettings(BOOL bLoad=TRUE);
LRESULT OnClickedCheckBox(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
if (wNotifyCode == BN_CLICKED) UpdateACMLSettings(FALSE);
return 0;
}
LRESULT OnChangeEditlines(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
UpdateACMLSettings(FALSE);
return 0;
}
LRESULT OnClickedBtninit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnClickedBtnload(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnClickedBtnsave(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnClickedBtnload2(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnClickedBtnsave2(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnClickedBtnload3(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnClickedBtnsave3(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnHScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnVScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAINDLG_H__D0947DE9_4DE3_477B_82AF_11D43DE03E5A__INCLUDED_)