⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 标签控制
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Myimgapp.h"
#include "MainFrm.h"
#include "View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_GFX_LARGEICON, OnGfxLargeicon)
	ON_UPDATE_COMMAND_UI(ID_GFX_LARGEICON, OnUpdateGfxLargeicon)
	ON_COMMAND(ID_GFX_SMALLICON, OnGfxSmallicon)
	ON_UPDATE_COMMAND_UI(ID_GFX_SMALLICON, OnUpdateGfxSmallicon)
	ON_COMMAND(IDC_MSG_RECIEVED,OnMsgRecieved)
	ON_COMMAND(IDC_MSG_SENDED,OnMsgSended)
	ON_COMMAND(IDC_TELBOOK,   OnTelBook)	
	ON_COMMAND(IDC_GETALLSIM,OnGetAllSimMsg)
	ON_COMMAND(IDC_REFRESH, OnRefreshSel)
	ON_COMMAND(IDC_REFRESHALL, OnRefreshAll)
	ON_COMMAND(IDC_MSG_DELETED, OnMsgDeleted)
	ON_COMMAND(IDC_WRITEMSG,OnWriteMsg)
	ON_COMMAND(IDC_SCHOOL_REPORT_CARD, OnSchoolReportCard)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
	ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnToolbarDropDown)
	ON_WM_GETMINMAXINFO()
	ON_WM_CONTEXTMENU()
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	
}

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("Failed to create toolbar\n");
		return -1;      // fail to create
	}
	*/
	if (!this->CreateExToolBar())
		return -1;


	if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
/*	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	CToolBar& tb = m_wndToolBar;
	tb.SendMessage(TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS);

	// change button style to dropdown
	int iButton = tb.SendMessage(TB_COMMANDTOINDEX, ID_FILE_OPEN);
	DWORD dwStyle = tb.GetButtonStyle(iButton);
	dwStyle |= TBSTYLE_DROPDOWN;
	tb.SetButtonStyle(iButton, dwStyle);

	DragAcceptFiles(TRUE);
*/
	CWnd*   pWnd;   
    pWnd=pWnd->FromHandle(m_wndStatusBar.m_hWnd);  

	m_test.Create(WS_CHILD|WS_VISIBLE,CRect(460,0,900,20),pWnd,0);

	m_test.SetRange(1,100);//设置进度条范围
	m_test.SetStep(10);
	timer=SetTimer(1,500,NULL); 
	return 0;
}


BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   cs.lpszClass = AfxRegisterWndClass(
      0,											 // no redraw
      NULL,                             // no cursor (use default)
      NULL,                             // no background brush
      AfxGetApp()->LoadIcon(IDR_MAINFRAME)); // app icon
   ASSERT(cs.lpszClass);
	cs.style |= WS_CLIPCHILDREN;

	cs.style &=~FWS_ADDTOTITLE;
   return CFrameWnd::PreCreateWindow(cs);
}

////////////////
// Create CFolderFrame in main frame
//
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT, CCreateContext* pcc)
{
/*	if (!wndSplitter.CreateStatic(this, 1, 2)) return false;

//	if (!wndSplitter.CreateView(0, 1, pcc->m_pNewViewClass, CSize(0,0), pcc)) return false;

	DWORD dwf = CGfxOutBarCtrl::fDragItems|
				CGfxOutBarCtrl::fEditGroups|
				CGfxOutBarCtrl::fEditItems|
				CGfxOutBarCtrl::fRemoveGroups|
				CGfxOutBarCtrl::fRemoveItems|
				CGfxOutBarCtrl::fAddGroups|
				CGfxOutBarCtrl::fAnimation;

	wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &wndSplitter,
		wndSplitter.IdFromRowCol(0, 0), dwf);
	wndBar.SetOwner(this);

	imaLarge.Create(IDB_IMAGELIST, 32, 0, RGB(128,128,128));
	imaSmall.Create(IDB_SMALL_IMAGELIST, 16, 0, RGB(0,128,128));

	wndBar.SetImageList(&imaLarge, CGfxOutBarCtrl::fLargeIcon);
	wndBar.SetImageList(&imaSmall, CGfxOutBarCtrl::fSmallIcon);

	wndTree.Create(WS_CHILD|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS, 
		CRect(0,0,0,0), &wndBar, 1010);
	wndTree.SetImageList(&imaSmall, TVSIL_NORMAL);

	wndBar.SetAnimationTickCount(10);

	wndBar.SetAnimSelHighlight(200);

	//Blue Sky加入的控制
	wndBar.SetIfQueryRemove(true);


	HTREEITEM htm = wndTree.InsertItem("tree 1", 0,0);
	HTREEITEM htm1 = wndTree.InsertItem("tree 2", 1,1, htm);
	wndTree.InsertItem("tree 3", 1,1, htm);

	for (int xx = 0; xx < 5; xx ++)
	{
		htm = wndTree.InsertItem("tree 1", 0,0);
		htm1 = wndTree.InsertItem("tree 2", 1,1, htm);
		wndTree.InsertItem("tree 3", 1,1, htm);

		htm = wndTree.InsertItem("tree 1", 0,0);
		htm1 = wndTree.InsertItem("tree asdasdasdadasdasdasdasdas2", 1,1, htm);
		wndTree.InsertItem("tree 3", 1,1, htm);
	}
	
	wndBar.AddFolder("我的任务", 0);
	wndBar.AddFolderBar("通知及公告", &wndTree);
	wndBar.AddFolder("附加任务1", 1);
	wndBar.AddFolder("附加任务2", 2);
	wndBar.AddFolder("附加任务3", 3);


	wndBar.InsertItem(0, 0, "Item 1", 0, 0);
	wndBar.InsertItem(0, 1, "Item 2", 1, 0);
	wndBar.InsertItem(0, 2, "Item 3", 2, 0);
	wndBar.InsertItem(0, 3, "Item 4", 3, 0);
	wndBar.InsertItem(0, 4, "Item 5", 0, 0);
	wndBar.InsertItem(0, 5, "Item 6", 1, 0);
	wndBar.InsertItem(0, 6, "Item 7", 2, 0);
	wndBar.InsertItem(0, 7, "Item 8", 3, 0);

	wndBar.InsertItem(2, 0, "Item 1", 0, 0);
	wndBar.InsertItem(2, 1, "Item 2", 1, 0);
	wndBar.InsertItem(2, 2, "Item 3", 2, 0);
	wndBar.InsertItem(2, 3, "Item 4", 3, 0);

	wndBar.SetSelFolder(1);

	CRect r;
	GetClientRect(&r);

	int w1 = r.Width()/5;
	int w2 = r.Width()/4;

	wndSplitter.SetColumnInfo( 0, w1, 0 );
	wndSplitter.SetColumnInfo( 1, w2, 0 );

	wndSplitter.RecalcLayout();//*/
	

     m_wndFolderFrame.Create(this,
		RUNTIME_CLASS(CPictureView),
		pcc,
		IDR_FOLDERTABS);
	return true;
	
}

long CMainFrame::OnOutbarNotify(WPARAM wParam, LPARAM lParam)
{
	switch (wParam)
	{
		case NM_OB_ITEMCLICK:
		// cast the lParam to an integer to get the clicked item
			{
				int index = (int) lParam;
				CString cs, cs1;
				cs1 = wndBar.GetItemText(index);
				int iFloder = wndBar.GetSelFolder();
				cs.Format("您的任务编辑区", iFloder, (int)lParam, cs1);
				AfxMessageBox(cs);
			}
		return 0;

		case NM_OB_ONLABELENDEDIT:
		// cast the lParam to an OUTBAR_INFO * struct; it will contain info about the edited item
		// return 1 to do the change and 0 to cancel it
			{
				OUTBAR_INFO * pOI = (OUTBAR_INFO *) lParam;
				TRACE2("Editing item %d, new text:%s\n", pOI->index, pOI->cText);
			}
		return 1;

		case NM_OB_ONGROUPENDEDIT:
		// cast the lParam to an OUTBAR_INFO * struct; it will contain info about the edited folder
		// return 1 to do the change and 0 to cancel it
			{
				OUTBAR_INFO * pOI = (OUTBAR_INFO *) lParam;
				TRACE2("Editing folder %d, new text:%s\n", pOI->index, pOI->cText);
			}
		return 1;

		case NM_OB_DRAGITEM:
		// cast the lParam to an OUTBAR_INFO * struct; it will contain info about the dragged items
		// return 1 to do the change and 0 to cancel it
			{
				OUTBAR_INFO * pOI = (OUTBAR_INFO *) lParam;
				TRACE2("Drag item %d at position %d\n", pOI->iDragFrom, pOI->iDragTo);
			}
		return 1;
	}
	return 0;
}

void CMainFrame::OnGfxLargeicon() 
{
	wndBar.SetSmallIconView(false);
}

void CMainFrame::OnUpdateGfxLargeicon(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(!wndBar.IsSmallIconView());
}

void CMainFrame::OnGfxSmallicon() 
{
	wndBar.SetSmallIconView(true);
	
}

void CMainFrame::OnUpdateGfxSmallicon(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(wndBar.IsSmallIconView());
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
//////////////////
// Handle TBN_DROPDOWN
// Default is to display the specified menu at the right place.
// You can override to generate dynamic menus
//
// Args:
//		- NMTOOLBAR struct from TBN_DROPDOWN
//		- command id of button
//		- point to display menu at
//
void CMainFrame::OnToolbarDropDown(NMTOOLBAR* pnmtb, LRESULT *plr)
{
	// load and display popup menu
	CMenu menu;
	menu.LoadMenu(IDR_FILEDROPDOWN);
	CMenu* pPopup = menu.GetSubMenu(0);
	ASSERT(pPopup);

	CRect rc;
	m_wndToolBar.SendMessage(TB_GETRECT, pnmtb->iItem, (LPARAM)&rc);
	m_wndToolBar.ClientToScreen(&rc);

	pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_VERTICAL,
		rc.left, rc.bottom, this, &rc);
}

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpmmi)
{
	CRect rc(0,0,
		GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
	rc.InflateRect(100,100);
	lpmmi->ptMaxSize = CPoint(rc.Size());
	lpmmi->ptMaxTrackSize = CPoint(rc.Size());
}

void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint p)
{
	CMenu menu;
	VERIFY(menu.LoadMenu(IDR_MAINFRAME));
	CMenu* pSubMenu = menu.GetSubMenu(1);
	pSubMenu->TrackPopupMenu(0, p.x, p.y, this);
}

BOOL CMainFrame::CreateExToolBar()
{
	CImageList img;
	CString str;
	
	if(!m_wndReBar.Create(this))
	{
		return -1;
	}
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC))
	{
		return -1;      
	}
	
	//下面的代码是设置按钮的宽度和长度
	m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 80);
	//下面的代码是设置"热"的位图
	img.Create(22, 22, ILC_COLOR8|ILC_MASK,1,1);
	img.SetBkColor(::GetSysColor(COLOR_BTNFACE));
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON2));     	
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON4));    
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON6));      
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON7));       
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON8)); 
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON1));		
	img.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));	
	m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
	img.Detach();	
	
	
	img.Create(22, 22, ILC_COLOR8|ILC_MASK, 1,1);
	img.SetBkColor(::GetSysColor(COLOR_BTNFACE));
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON2));	    	
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON4));    
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON6));      
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON7));       
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON8)); 
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON1));		  
	img.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));	
	m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
	img.Detach();
	
	//改变属性
	m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS | TBSTYLE_TRANSPARENT|TBBS_CHECKBOX );
	m_wndToolBar.SetButtons(NULL,10);	
	m_wndToolBar.SetButtonInfo(0, IDC_WRITEMSG, TBSTYLE_BUTTON, 0);
	m_wndToolBar.SetButtonText(0, "检疫员");
	m_wndToolBar.SetButtonInfo(1, IDC_GETALLSIM, TBSTYLE_BUTTON, 1);
	m_wndToolBar.SetButtonText(1, "报产检");
	m_wndToolBar.SetButtonInfo(2, IDC_SCHOOL_REPORT_CARD, TBSTYLE_BUTTON, 2);
	m_wndToolBar.SetButtonText(2, "产检证");
	m_wndToolBar.SetButtonInfo(3, IDC_TELBOOK, TBSTYLE_BUTTON, 3);
	m_wndToolBar.SetButtonText(3, "调研单");
	m_wndToolBar.SetButtonInfo(4, IDC_MSG_RECIEVED, TBSTYLE_BUTTON , 4);
	m_wndToolBar.SetButtonText(4, "出省证");
	m_wndToolBar.SetButtonInfo(5, IDC_MSG_SENDED, TBSTYLE_BUTTON , 5);
	m_wndToolBar.SetButtonText(5, "省内证");
	m_wndToolBar.SetButtonInfo(6, IDC_MSG_DELETED, TBSTYLE_BUTTON, 6);
	m_wndToolBar.SetButtonText(6, "实蝇");	
	m_wndToolBar.SetButtonInfo(7, IDC_REFRESH, TBSTYLE_BUTTON , 7);
	m_wndToolBar.SetButtonText(7, "帮助");
	m_wndToolBar.SetButtonInfo(8, IDC_REFRESHALL, TBSTYLE_BUTTON , 8);
	m_wndToolBar.SetButtonText(8, "网站");
	m_wndToolBar.SetButtonInfo(9,ID_APP_EXIT,TBSTYLE_BUTTON,9);
	m_wndToolBar.SetButtonText(9,"退出");
	
	CRect rectToolBar;
	
	m_wndToolBar.GetItemRect(0, &rectToolBar);
	
	m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(22,22));
	m_wndReBar.AddBar(&m_wndToolBar);
	REBARBANDINFO rbbi;
	rbbi.cbSize = sizeof(rbbi);		
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE|RBBIM_BACKGROUND;
	
	rbbi.cxMinChild = rectToolBar.Width();
	
	rbbi.cyMinChild = rectToolBar.Height();
	
	rbbi.hbmBack = LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));
	
	rbbi.cx = rbbi.cxIdeal = rectToolBar.Width() * 10;
	
	m_wndReBar.GetReBarCtrl().SetBandInfo(0, &rbbi);	
	
	return TRUE;
}

void CMainFrame::OnMsgDeleted()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnGetAllSimMsg()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnMsgRecieved()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnMsgSended()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnRefreshAll()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnRefreshSel()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnSchoolReportCard()
{
	AfxMessageBox("您好");
}


void CMainFrame::OnTelBook()
{
	AfxMessageBox("您好");
}

void CMainFrame::OnWriteMsg()
{
	AfxMessageBox("您好");
}


void CMainFrame::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	int l,h;
	m_test.GetRange(l,h);
	if(m_test.GetPos()==h)KillTimer(timer);
	m_test.StepIt();
	CFrameWnd::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -