// MainFrm.cpp : CMainFrame Ŭ·¡½ºÀÇ ±¸Çö
|
//
|
|
#include "stdafx.h"
|
#include "LogView.h"
|
|
#include "MainFrm.h"
|
|
#ifdef _DEBUG
|
#define new DEBUG_NEW
|
#endif
|
|
|
// CMainFrame
|
|
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
|
|
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
|
ON_WM_CREATE()
|
ON_WM_CLOSE()
|
ON_WM_DESTROY()
|
ON_MESSAGE(UM_TRAY, &CMainFrame::OnTray)
|
ON_COMMAND(ID_TRAYMENU_SHOWAPPLICATION, &CMainFrame::OnTraymenuShowapplication)
|
ON_COMMAND(ID_TRAYMENU_EXIT, &CMainFrame::OnTraymenuExit)
|
ON_COMMAND(ID_ViewAlwaysOnTop, &CMainFrame::OnViewalwaysontop)
|
END_MESSAGE_MAP()
|
|
static UINT indicators[] =
|
{
|
ID_SEPARATOR, // »óÅ Á٠ǥ½Ã±â
|
ID_INDICATOR_CAPS,
|
ID_INDICATOR_NUM,
|
ID_INDICATOR_SCRL,
|
};
|
|
|
// CMainFrame »ý¼º/¼Ò¸ê
|
|
CMainFrame::CMainFrame()
|
{
|
// TODO: ¿©±â¿¡ ¸â¹ö ÃʱâÈ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
m_uShellRestart = ::RegisterWindowMessage(__TEXT("TaskbarCreated"));
|
m_bOnTop = false;
|
}
|
|
CMainFrame::~CMainFrame()
|
{
|
}
|
|
|
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
{
|
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
|
return -1;
|
/*
|
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(IDR_MAINFRAME))
|
{
|
TRACE0("µµ±¸ ¸ðÀ½À» ¸¸µéÁö ¸øÇß½À´Ï´Ù.\n");
|
return -1; // ¸¸µéÁö ¸øÇß½À´Ï´Ù.
|
}
|
*/
|
if (!m_wndStatusBar.Create(this) ||
|
!m_wndStatusBar.SetIndicators(indicators,
|
sizeof(indicators)/sizeof(UINT)))
|
{
|
TRACE0("StatusBar Error.\n");
|
return -1; // ¸¸µéÁö ¸øÇß½À´Ï´Ù.
|
}
|
|
// TODO: µµ±¸ ¸ðÀ½À» µµÅ·ÇÒ ¼ö ¾ø°Ô ÇÏ·Á¸é ÀÌ ¼¼ ÁÙÀ» »èÁ¦ÇϽʽÿÀ.
|
/*m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
|
EnableDocking(CBRS_ALIGN_ANY);
|
DockControlBar(&m_wndToolBar);
|
*/
|
GoTray();
|
return 0;
|
}
|
|
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
{
|
if( !CFrameWnd::PreCreateWindow(cs) )
|
return FALSE;
|
// TODO: CREATESTRUCT cs¸¦ ¼öÁ¤ÇÏ¿© ¿©±â¿¡¼
|
// Window Ŭ·¡½º ¶Ç´Â ½ºÅ¸ÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù.
|
cs.style = WS_OVERLAPPED | WS_CAPTION | WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX;
|
cs.lpszName = _T("LogView");
|
return TRUE;
|
}
|
|
|
// CMainFrame Áø´Ü
|
|
#ifdef _DEBUG
|
void CMainFrame::AssertValid() const
|
{
|
CFrameWnd::AssertValid();
|
}
|
|
void CMainFrame::Dump(CDumpContext& dc) const
|
{
|
CFrameWnd::Dump(dc);
|
}
|
|
#endif //_DEBUG
|
|
|
// CMainFrame ¸Þ½ÃÁö 󸮱â
|
void CMainFrame::GoTray(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("LogViewer"));
|
|
::Shell_NotifyIcon(NIM_ADD, &nid);
|
}
|
|
void CMainFrame::OnClose()
|
{
|
// TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù.
|
ShowWindow(SW_HIDE);
|
//CFrameWnd::OnClose();
|
}
|
|
void CMainFrame::OnDestroy()
|
{
|
NOTIFYICONDATA nid;
|
nid.cbSize = sizeof(nid);
|
nid.hWnd = m_hWnd;
|
nid.uID = IDR_MAINFRAME;
|
|
::Shell_NotifyIcon(NIM_DELETE, &nid);
|
|
CFrameWnd::OnDestroy();
|
}
|
|
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::OnTraymenuShowapplication()
|
{
|
// TODO: ¿©±â¿¡ ¸í·É 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
ShowWindow(SW_SHOW);
|
}
|
|
void CMainFrame::OnTraymenuExit()
|
{
|
// TODO: ¿©±â¿¡ ¸í·É 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
CFrameWnd::OnClose();
|
}
|
|
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
{
|
// TODO: ¿©±â¿¡ Ư¼öÈµÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù.
|
if(message == m_uShellRestart) GoTray();
|
|
return CFrameWnd::WindowProc(message, wParam, lParam);
|
}
|
|
void CMainFrame::OnViewalwaysontop()
|
{
|
// TODO: ¿©±â¿¡ ¸í·É 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
CMenu *m_pMenu;
|
m_pMenu = this->GetMenu();
|
|
if(m_bOnTop)
|
{
|
m_pMenu->CheckMenuItem(ID_ViewAlwaysOnTop, MF_UNCHECKED);
|
SetWindowPos(&wndNoTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
|
m_bOnTop = !m_bOnTop;
|
}
|
else
|
{
|
m_pMenu->CheckMenuItem(ID_ViewAlwaysOnTop,MF_CHECKED);
|
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
|
m_bOnTop = !m_bOnTop;
|
}
|
}
|