|
// MainFrm.cpp : CMainFrame Ŭ·¡½ºÀÇ ±¸Çö
|
//
|
|
#include "stdafx.h"
|
#include "PLCConnector.h"
|
|
#include "MainFrm.h"
|
|
#ifdef _DEBUG
|
#define new DEBUG_NEW
|
#endif
|
|
// CMainFrame
|
|
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWndEx)
|
|
const int iMaxUserToolbars = 10;
|
const UINT uiFirstUserToolBarId = AFX_IDW_CONTROLBAR_FIRST + 40;
|
const UINT uiLastUserToolBarId = uiFirstUserToolBarId + iMaxUserToolbars - 1;
|
|
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)
|
ON_WM_CREATE()
|
ON_COMMAND(ID_VIEW_CUSTOMIZE, &CMainFrame::OnViewCustomize)
|
ON_MESSAGE(UM_TRAY, &CMainFrame::OnTray)
|
ON_REGISTERED_MESSAGE(AFX_WM_CREATETOOLBAR, &CMainFrame::OnToolbarCreateNew)
|
ON_COMMAND_RANGE(ID_VIEW_APPLOOK_WIN_2000, ID_VIEW_APPLOOK_OFF_2007_AQUA, &CMainFrame::OnApplicationLook)
|
ON_UPDATE_COMMAND_UI_RANGE(ID_VIEW_APPLOOK_WIN_2000, ID_VIEW_APPLOOK_OFF_2007_AQUA, &CMainFrame::OnUpdateApplicationLook)
|
ON_WM_DESTROY()
|
ON_WM_CLOSE()
|
ON_COMMAND(ID_APP_EXIT, &CMainFrame::OnAppExit)
|
ON_COMMAND(ID_APP_SHOWAPPLICATION, &CMainFrame::OnAppShowapplication)
|
END_MESSAGE_MAP()
|
|
static UINT indicators[] =
|
{
|
ID_SEPARATOR, // »óÅ Á٠ǥ½Ã±â
|
ID_INDICATOR_CAPS,
|
ID_INDICATOR_NUM,
|
ID_INDICATOR_SCRL,
|
};
|
|
// CMainFrame »ý¼º/¼Ò¸ê
|
|
CMainFrame::CMainFrame()
|
{
|
// TODO: ¿©±â¿¡ ¸â¹ö ÃʱâÈ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
theApp.m_nAppLook = theApp.GetInt(_T("ApplicationLook"), ID_VIEW_APPLOOK_VS_2005);
|
}
|
|
CMainFrame::~CMainFrame()
|
{
|
}
|
|
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
{
|
if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
|
return -1;
|
/*
|
BOOL bNameValid;
|
// º¸°üµÈ °ª¿¡ µû¶ó ºñÁÖ¾ó °ü¸®ÀÚ ¹× ½ºÅ¸ÀÏÀ» ¼³Á¤ÇÕ´Ï´Ù.
|
OnApplicationLook(theApp.m_nAppLook);
|
|
if (!m_wndMenuBar.Create(this))
|
{
|
|
return -1; // ¸¸µéÁö ¸øÇß½À´Ï´Ù.
|
}
|
|
m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);
|
|
// ¸Þ´º ¸ðÀ½À» Ȱ¼ºÈÇØµµ Æ÷Ä¿½º°¡ À̵¿ÇÏÁö ¾Ê°Ô ÇÕ´Ï´Ù.
|
CMFCPopupMenu::SetForceMenuFocus(FALSE);
|
|
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
|
!m_wndToolBar.LoadToolBar(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
|
{
|
|
return -1; // ¸¸µéÁö ¸øÇß½À´Ï´Ù.
|
}
|
|
CString strToolBarName;
|
bNameValid = strToolBarName.LoadString(IDS_TOOLBAR_STANDARD);
|
ASSERT(bNameValid);
|
m_wndToolBar.SetWindowText(strToolBarName);
|
|
CString strCustomize;
|
bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
|
ASSERT(bNameValid);
|
m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
|
|
// »ç¿ëÀÚ Á¤ÀÇ µµ±¸ ¸ðÀ½ ÀÛ¾÷À» Çã¿ëÇÕ´Ï´Ù.
|
InitUserToolbars(NULL, uiFirstUserToolBarId, uiLastUserToolBarId);
|
|
if (!m_wndStatusBar.Create(this))
|
{
|
|
return -1; // ¸¸µéÁö ¸øÇß½À´Ï´Ù.
|
}
|
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
|
|
// TODO: µµ±¸ ¸ðÀ½ ¹× ¸Þ´º ¸ðÀ½À» µµÅ·ÇÒ ¼ö ¾ø°Ô ÇÏ·Á¸é ÀÌ ´Ù¼¸ ÁÙÀ» »èÁ¦ÇϽʽÿÀ.
|
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
|
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
|
EnableDocking(CBRS_ALIGN_ANY);
|
DockPane(&m_wndMenuBar);
|
DockPane(&m_wndToolBar);
|
|
|
// Visual Studio 2005 ½ºÅ¸ÀÏ µµÅ· â µ¿ÀÛÀ» Ȱ¼ºÈÇÕ´Ï´Ù.
|
CDockingManager::SetDockingMode(DT_SMART);
|
// Visual Studio 2005 ½ºÅ¸ÀÏ µµÅ· â ÀÚµ¿ ¼û±è µ¿ÀÛÀ» Ȱ¼ºÈÇÕ´Ï´Ù.
|
EnableAutoHidePanes(CBRS_ALIGN_ANY);
|
|
// µµ±¸ ¸ðÀ½ ¹× µµÅ· â ¸Þ´º ¹Ù²Ù±â¸¦ Ȱ¼ºÈÇÕ´Ï´Ù.
|
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);
|
|
// ºü¸¥(<Alt> ۸¦ ´©¸¥ ä ²ø±â) µµ±¸ ¸ðÀ½ »ç¿ëÀÚ ÁöÁ¤À» Ȱ¼ºÈÇÕ´Ï´Ù.
|
CMFCToolBar::EnableQuickCustomization();
|
|
if (CMFCToolBar::GetUserImages() == NULL)
|
{
|
// »ç¿ëÀÚ Á¤ÀÇ µµ±¸ ¸ðÀ½ À̹ÌÁö¸¦ ·ÎµåÇÕ´Ï´Ù.
|
if (m_UserImages.Load(_T(".\\UserImages.bmp")))
|
{
|
m_UserImages.SetImageSize(CSize(16, 16), FALSE);
|
CMFCToolBar::SetUserImages(&m_UserImages);
|
}
|
}
|
|
// ¸Þ´º °³ÀÎ ¼³Á¤À» Ȱ¼ºÈÇÕ´Ï´Ù(°¡Àå ÃÖ±Ù¿¡ »ç¿ëÇÑ ¸í·É).
|
// TODO: »ç¿ëÀÚÀÇ ±âº» ¸í·ÉÀ» Á¤ÀÇÇÏ¿© °¢ Ç®´Ù¿î ¸Þ´º¿¡ Çϳª ÀÌ»óÀÇ ±âº» ¸í·ÉÀ» Æ÷ÇÔ½Ãŵ´Ï´Ù.
|
CList<UINT, UINT> lstBasicCommands;
|
|
lstBasicCommands.AddTail(ID_FILE_NEW);
|
lstBasicCommands.AddTail(ID_FILE_OPEN);
|
lstBasicCommands.AddTail(ID_FILE_SAVE);
|
lstBasicCommands.AddTail(ID_FILE_PRINT);
|
lstBasicCommands.AddTail(ID_APP_EXIT);
|
lstBasicCommands.AddTail(ID_EDIT_CUT);
|
lstBasicCommands.AddTail(ID_EDIT_PASTE);
|
lstBasicCommands.AddTail(ID_EDIT_UNDO);
|
lstBasicCommands.AddTail(ID_APP_ABOUT);
|
lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);
|
lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
|
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);
|
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);
|
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);
|
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);
|
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);
|
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);
|
|
CMFCToolBar::SetBasicCommands(lstBasicCommands);
|
*/
|
GotoTray();
|
|
return 0;
|
}
|
|
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
{
|
if( !CFrameWndEx::PreCreateWindow(cs) )
|
return FALSE;
|
|
cs.style = cs.style & ~FWS_ADDTOTITLE;
|
cs.lpszName = _T("PLCConnector");
|
this->SetTitle(_T("PLCConnector"));
|
// TODO: CREATESTRUCT cs¸¦ ¼öÁ¤ÇÏ¿© ¿©±â¿¡¼
|
// Window Ŭ·¡½º ¶Ç´Â ½ºÅ¸ÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù.
|
|
return TRUE;
|
}
|
|
// CMainFrame Áø´Ü
|
|
#ifdef _DEBUG
|
void CMainFrame::AssertValid() const
|
{
|
CFrameWndEx::AssertValid();
|
}
|
|
void CMainFrame::Dump(CDumpContext& dc) const
|
{
|
CFrameWndEx::Dump(dc);
|
}
|
#endif //_DEBUG
|
|
|
// CMainFrame ¸Þ½ÃÁö 󸮱â
|
|
void CMainFrame::OnViewCustomize()
|
{
|
CMFCToolBarsCustomizeDialog* pDlgCust = new CMFCToolBarsCustomizeDialog(this, TRUE /* ¸Þ´º¸¦ °Ë»öÇÕ´Ï´Ù. */);
|
pDlgCust->EnableUserDefinedToolbars();
|
pDlgCust->Create();
|
}
|
|
LRESULT CMainFrame::OnToolbarCreateNew(WPARAM wp,LPARAM lp)
|
{
|
LRESULT lres = CFrameWndEx::OnToolbarCreateNew(wp,lp);
|
if (lres == 0)
|
{
|
return 0;
|
}
|
|
CMFCToolBar* pUserToolbar = (CMFCToolBar*)lres;
|
ASSERT_VALID(pUserToolbar);
|
|
BOOL bNameValid;
|
CString strCustomize;
|
bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
|
ASSERT(bNameValid);
|
|
pUserToolbar->EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
|
return lres;
|
}
|
|
void CMainFrame::OnApplicationLook(UINT id)
|
{
|
CWaitCursor wait;
|
|
theApp.m_nAppLook = id;
|
|
switch (theApp.m_nAppLook)
|
{
|
case ID_VIEW_APPLOOK_WIN_2000:
|
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManager));
|
break;
|
|
case ID_VIEW_APPLOOK_OFF_XP:
|
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOfficeXP));
|
break;
|
|
case ID_VIEW_APPLOOK_WIN_XP:
|
CMFCVisualManagerWindows::m_b3DTabsXPTheme = TRUE;
|
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
|
break;
|
|
case ID_VIEW_APPLOOK_OFF_2003:
|
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2003));
|
CDockingManager::SetDockingMode(DT_SMART);
|
break;
|
|
case ID_VIEW_APPLOOK_VS_2005:
|
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2005));
|
CDockingManager::SetDockingMode(DT_SMART);
|
break;
|
|
default:
|
switch (theApp.m_nAppLook)
|
{
|
case ID_VIEW_APPLOOK_OFF_2007_BLUE:
|
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
|
break;
|
|
case ID_VIEW_APPLOOK_OFF_2007_BLACK:
|
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_ObsidianBlack);
|
break;
|
|
case ID_VIEW_APPLOOK_OFF_2007_SILVER:
|
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Silver);
|
break;
|
|
case ID_VIEW_APPLOOK_OFF_2007_AQUA:
|
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Aqua);
|
break;
|
}
|
|
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
|
CDockingManager::SetDockingMode(DT_SMART);
|
}
|
|
RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);
|
|
theApp.WriteInt(_T("ApplicationLook"), theApp.m_nAppLook);
|
}
|
|
void CMainFrame::OnUpdateApplicationLook(CCmdUI* pCmdUI)
|
{
|
pCmdUI->SetRadio(theApp.m_nAppLook == pCmdUI->m_nID);
|
}
|
|
BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
|
{
|
// ±âº» Ŭ·¡½º°¡ ½ÇÁ¦ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.
|
|
if (!CFrameWndEx::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext))
|
{
|
return FALSE;
|
}
|
|
|
// ¸ðµç »ç¿ëÀÚ µµ±¸ ¸ðÀ½¿¡ »ç¿ëÀÚ ÁöÁ¤ ´ÜÃ߸¦ Ȱ¼ºÈÇÕ´Ï´Ù.
|
BOOL bNameValid;
|
CString strCustomize;
|
bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
|
ASSERT(bNameValid);
|
|
for (int i = 0; i < iMaxUserToolbars; i ++)
|
{
|
CMFCToolBar* pUserToolbar = GetUserToolBarByIndex(i);
|
if (pUserToolbar != NULL)
|
{
|
pUserToolbar->EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
|
}
|
}
|
|
return TRUE;
|
}
|
|
|
void CMainFrame::GotoTray(void)
|
{
|
NOTIFYICONDATA nid;
|
::ZeroMemory(&nid, sizeof(nid));
|
nid.cbSize = sizeof(nid);
|
nid.hWnd = m_hWnd;
|
nid.uID = IDR_MAINFRAME;
|
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
|
nid.uCallbackMessage = UM_TRAY;
|
nid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
wsprintf(nid.szTip, _T("%s"), _T("PLCConnector"));
|
|
::Shell_NotifyIcon(NIM_ADD, &nid);
|
}
|
|
void CMainFrame::OnDestroy()
|
{
|
|
NOTIFYICONDATA nid;
|
nid.cbSize = sizeof(nid);
|
nid.hWnd = m_hWnd;
|
nid.uID = IDR_MAINFRAME;
|
|
::Shell_NotifyIcon(NIM_DELETE, &nid);
|
|
|
CFrameWndEx::OnDestroy();
|
|
// TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
}
|
|
void CMainFrame::OnClose()
|
{
|
// TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù.
|
ShowWindow(SW_HIDE);
|
//CFrameWndEx::OnClose();
|
}
|
|
LRESULT CMainFrame::OnTray(WPARAM wParam, LPARAM lParam)
|
{
|
if(lParam == WM_RBUTTONDOWN)
|
{
|
SetCapture();
|
}
|
else if(lParam == WM_RBUTTONUP)
|
{
|
CMenu menu, *pMenu = NULL;
|
CPoint pt;
|
|
menu.LoadMenu(IDR_Tray);
|
pMenu = menu.GetSubMenu(0);
|
|
GetCursorPos(&pt);
|
SetForegroundWindow();
|
pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON,
|
pt.x, pt.y, this);
|
::PostMessage(m_hWnd, WM_NULL, 0, 0);
|
|
ReleaseCapture();
|
}
|
else if(lParam == WM_LBUTTONDBLCLK)
|
{
|
ShowWindow(SW_SHOW);
|
SetForegroundWindow();
|
}
|
|
return 0;
|
}
|
void CMainFrame::OnAppExit()
|
{
|
// TODO: ¿©±â¿¡ ¸í·É 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
CFrameWndEx::OnClose();
|
}
|
|
void CMainFrame::OnAppShowapplication()
|
{
|
// TODO: ¿©±â¿¡ ¸í·É 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
ShowWindow(SW_SHOW);
|
}
|