mainfrm.cpp
来自「RFID读卡器源码,vc.net编写,bcgp界面控件」· C++ 代码 · 共 886 行 · 第 1/2 页
CPP
886 行
}
pOutlookBar->EnableInPlaceEdit (TRUE);
const UINT uiPage1ID = 1;
const UINT uiPage2ID = 2;
const UINT uiPage3ID = 3;
DWORD dwPaneStyle = dwDefaultToolbarStyle | CBRS_FLOAT_MULTI;
pane1.Create (&bar, dwPaneStyle, uiPage1ID);
pane1.SetOwner (this);
pane1.EnableTextLabels ();
pane1.EnableDocking (CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT);
pane2.Create (&bar, dwPaneStyle, uiPage2ID);
pane2.SetOwner (this);
pane2.EnableTextLabels ();
pane2.EnableDocking (CBRS_ALIGN_ANY);
CImageList images;
images.Create (IDB_OUTLOOK_LARGE, 32, 0, RGB (255, 0, 255));
AddWorkSpace (_T("Home"), 0, ID_VIEW_GOTO_HOME, pane1, ID_NEW_MAIL, images);
AddWorkSpace (_T("Calendar"), 1, ID_VIEW_GOTO_CALENDAR, pane1, ID_NEW_APPOINMENT, images);
AddWorkSpace (_T("Drafts"), 2, ID_VIEW_GOTO_DRAFTS, pane1, ID_NEW_MAIL, images);
AddWorkSpace (_T("Inbox"), 3, ID_VIEW_GOTO_INBOX, pane1, ID_NEW_MAIL, images);
AddWorkSpace (_T("Journal"), 4, ID_VIEW_GOTO_JOURNAL, pane1, ID_NEW_JOURNAL_ENTRY, images);
AddWorkSpace (_T("Notes"), 5, ID_VIEW_GOTO_NOTES, pane1, ID_NEW_NOTE, images);
AddWorkSpace (_T("Outbox"), 6, ID_VIEW_GOTO_OUTBOX, pane1, ID_NEW_MAIL, images);
AddWorkSpace (_T("Sent Items"), 7, ID_VIEW_GOTO_SENTITEMS, pane1, ID_NEW_MAIL, images);
AddWorkSpace (_T("Tasks"), 8, ID_VIEW_GOTO_TASKS, pane1, ID_NEW_TASK, images);
pOutlookBar->AddControl (&pane1, (LPCTSTR)"General", 0);
pane1.EnableDocking (CBRS_ALIGN_ANY);
pane1.SetDefaultState ();
AddWorkSpace (_T("My Computer"), 9, ID_VIEW_MY_COMPUTER, pane2, ID_NEW_SHORTCUT, images);
AddWorkSpace (_T("Personal"), 10, ID_VIEW_GOTO_PERSONAL, pane2, ID_NEW_SHORTCUT, images);
AddWorkSpace (_T("Favorites"), 10, ID_VIEW_GOTO_FAVORITES, pane2, ID_NEW_SHORTCUT, images);
pOutlookBar->AddControl (&pane2, (LPCTSTR)"Other Shortcuts", 1);
pane2.EnableDocking (CBRS_ALIGN_ANY);
pane2.SetDefaultState ();
CRect rectDummy (0, 0, 0, 0);
const DWORD dwTreeStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES |
TVS_LINESATROOT | TVS_HASBUTTONS;
tree.Create (dwTreeStyle, rectDummy, &bar, 1200);
pOutlookBar->AddControl (&tree, _T("Folders"), 2);
calendar.Create (rectDummy, &bar, 1201);
pOutlookBar->AddControl (&calendar, _T("Calendar"), 3);
bar.SetBarStyle(bar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
BOOL bAnimation = theApp.GetInt (_T("OutlookAnimation"), TRUE);
CBCGPOutlookWnd::EnableAnimation (bAnimation);
return TRUE;
}
//****************************************************************************************
BOOL CMainFrame::CreateCaptionBar ()
{
if (!m_wndCaption.Create (WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,
this, ID_VIEW_CAPTIONBAR, -1))
{
TRACE0("Failed to create caption bar\n");
return FALSE;
}
m_wndCaption.SetFlatBorder ();
m_wndCaption.SetFont (&globalData.fontBold);
return TRUE;
}
//****************************************************************************************
void CMainFrame::OnViewCaptionbar()
{
ShowControlBar (&m_wndCaption,
!(m_wndCaption.GetStyle () & WS_VISIBLE),
FALSE, TRUE);
}
//*************************************************************************************
void CMainFrame::OnUpdateViewCaptionbar(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck (m_wndCaption.GetStyle () & WS_VISIBLE);
}
//*************************************************************************************
void CMainFrame::OnViewWorkSpace (UINT id)
{
for (POSITION pos = m_lstWorkspaces.GetHeadPosition (); pos != NULL;)
{
CWorkspaceObj* pWS = (CWorkspaceObj*) m_lstWorkspaces.GetNext (pos);
ASSERT_VALID (pWS);
if (pWS->m_uiCmd == id)
{
SetWorkSpace (pWS);
}
}
}
//*************************************************************************************
void CMainFrame::SetWorkSpace (CWorkspaceObj* pWorkSpace)
{
ASSERT_VALID (pWorkSpace);
m_pCurrWorkSpace = pWorkSpace;
m_wndCaption.SetIcon (m_ImagesSmall.ExtractIcon (m_pCurrWorkSpace->m_iIconIndex));
m_wndCaption.SetButton (m_pCurrWorkSpace->m_strName, ID_SHOW_FOLDERS_POPUP);
m_wndCaption.Invalidate ();
m_wndCaption.UpdateWindow ();
m_wndFolderList.SelectWorkspace (pWorkSpace);
}
//*************************************************************************************
void CMainFrame::OnViewFolderList()
{
ShowControlBar (&m_wndFolderList,
!(m_wndFolderList.GetStyle () & WS_VISIBLE),
FALSE, TRUE);
RecalcLayout ();
}
//*************************************************************************************
void CMainFrame::OnUpdateViewFolderList(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck (m_wndFolderList.GetStyle () & WS_VISIBLE);
}
//*************************************************************************************
void CMainFrame::OnViewFoldersPopup()
{
// First, calulate popup window rectangle.
// Top left corner need to be under the caption's button:
CRect rectButton = m_wndCaption.GetButtonRect ();
m_wndCaption.ClientToScreen (&rectButton);
// Width will be same as folder bar's width:
CRect rectFolderBar;
m_wndFolderList.GetWindowRect (&rectFolderBar);
// Bottom will be near the main frame bottom:
CRect rectStatusBar;
m_wndStatusBar.GetWindowRect (rectStatusBar);
CRect rectPopup (rectButton.left, rectButton.bottom,
rectButton.left + rectFolderBar.Width (), rectStatusBar.bottom - 1);
CFolderListPopupWnd* pFoldersPopup =
new CFolderListPopupWnd (m_lstWorkspaces, m_ImagesSmall, m_pCurrWorkSpace);
pFoldersPopup->Create (rectPopup);
m_wndCaption.SetButtonPressed ();
}
//*************************************************************************************
void CMainFrame::OnCloseFoldersPopup (BOOL bKeep)
{
if (bKeep)
{
m_wndCaption.EnableButton (FALSE);
ShowControlBar (&m_wndFolderList, TRUE, FALSE, TRUE);
}
m_wndCaption.SetButtonPressed (FALSE);
}
//*************************************************************************************
void CMainFrame::RecalcLayout(BOOL bNotify)
{
CFrameWnd::RecalcLayout(bNotify);
if (m_wndFolderList.GetSafeHwnd () != NULL)
{
m_wndCaption.EnableButton (!(m_wndFolderList.GetStyle () & WS_VISIBLE));
}
}
//*************************************************************************************
void CMainFrame::AdjustDockingLayout (HDWP hdwp)
{
CFrameWnd::AdjustDockingLayout (hdwp);
if (m_wndFolderList.GetSafeHwnd () != NULL)
{
m_wndCaption.EnableButton (!(m_wndFolderList.GetStyle () & WS_VISIBLE));
}
}
//*************************************************************************************
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
CRect rectClient;
GetClientRect (rectClient);
m_wndSplitter.CreateStatic (this, 2, 1);
m_wndSplitter.CreateView (0, 0, pContext->m_pNewViewClass,
CSize (0, rectClient.Height ()*2 / 3), pContext);
m_wndSplitter.CreateView (1, 0, RUNTIME_CLASS (CRFIDScanView),
CSize (0, rectClient.Height () / 3), pContext);
return TRUE;
}
//*************************************************************************************
void CMainFrame::SetBasicCommands ()
{
CList<UINT, UINT> lstBasicCommands;
lstBasicCommands.AddTail (ID_VIEW_TOOLBARS);
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_TOOLBAR);
lstBasicCommands.AddTail (ID_VIEW_CUSTOMIZE);
lstBasicCommands.AddTail (ID_VIEW_APP_LOOK);
lstBasicCommands.AddTail (ID_NEW_MAIL);
lstBasicCommands.AddTail (ID_NEW_FAX);
lstBasicCommands.AddTail (ID_NEW_POST_FOLDER);
lstBasicCommands.AddTail (ID_NEW_APPOINMENT);
lstBasicCommands.AddTail (ID_NEW_MEETING);
lstBasicCommands.AddTail (ID_NEW_CONTRACT);
lstBasicCommands.AddTail (ID_NEW_DISTRIBUTION_LIST);
lstBasicCommands.AddTail (ID_NEW_TASK);
lstBasicCommands.AddTail (ID_NEW_NOTE);
lstBasicCommands.AddTail (ID_DUMMY);
lstBasicCommands.AddTail (ID_VIEW_FOLDER_LIST);
lstBasicCommands.AddTail (ID_FILE_SAVE_AS);
lstBasicCommands.AddTail (ID_FILE_PRINT_PREVIEW);
lstBasicCommands.AddTail (ID_FILE_CLOSE);
lstBasicCommands.AddTail (ID_DB_CONNECT);
lstBasicCommands.AddTail (ID_DB_DISCONNECT);
lstBasicCommands.AddTail (ID_DB_SETTING);
lstBasicCommands.AddTail (ID_RFID_ASSOCIATE);
lstBasicCommands.AddTail (ID_RFID_DEASSOCIATE);
lstBasicCommands.AddTail (ID_COMM_CONNECT);
lstBasicCommands.AddTail (ID_COMM_DISCONNECT);
lstBasicCommands.AddTail (ID_COMM_SETTING);
lstBasicCommands.AddTail (ID_ADDRESS_BOOK);
CBCGPToolBar::SetBasicCommands (lstBasicCommands);
}
//****************************************************************************************
void CMainFrame::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CFrameWnd::OnActivate(nState, pWndOther, bMinimized);
if (nState != WA_INACTIVE)
{
theApp.SetActiveFrame (CRFID_DesktopReaderApp::MainFrame);
theApp.m_pMainWnd = this;
}
}
//**************************************************************************************
BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
{
if (!CFrameWnd::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext))
{
return FALSE;
}
//----------------------------------------------------
// Enable customization button fore all user toolbars:
//----------------------------------------------------
for (int i = 0; i < uiLastUserToolBarId - uiFirstUserToolBarId + 1; i++)
{
CBCGPToolBar* pUserToolbar = GetUserBarByIndex (i);
if (pUserToolbar != NULL)
{
pUserToolbar->EnableCustomizeButton (TRUE, ID_VIEW_CUSTOMIZE, IDS_CUSTOMIZE);
}
}
return TRUE;
}
//***************************************************************************************
LRESULT CMainFrame::OnToolbarCreateNew(WPARAM wp,LPARAM lp)
{
LRESULT lres = CBCGPFrameWnd::OnToolbarCreateNew (wp,lp);
if (lres == 0)
{
return 0;
}
CBCGPToolBar* pUserToolbar = (CBCGPToolBar*) lres;
ASSERT_VALID (pUserToolbar);
pUserToolbar->EnableCustomizeButton (TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."));
pUserToolbar->AdjustLayout ();
return lres;
}
//************************************************************************************
CBCGPOutlookWnd* CMainFrame::FindOutlookParent (CWnd* pWnd)
{
if (pWnd == NULL)
{
return NULL;
}
if (pWnd->IsKindOf (RUNTIME_CLASS (CBCGPOutlookBar)))
{
return (CBCGPOutlookWnd*) ((CBCGPOutlookBar*)pWnd)->GetUnderlinedWindow ();
}
CWnd* pParent = pWnd->GetParent ();
while (pParent != NULL)
{
if (pParent->IsKindOf (RUNTIME_CLASS (CBCGPOutlookBar)))
{
return (CBCGPOutlookWnd*) ((CBCGPOutlookBar*)pParent)->GetUnderlinedWindow ();
}
pParent = pParent->GetParent ();
}
return NULL;
}
//*******************************************************************************************
void CMainFrame::OnClose()
{
theApp.WriteInt (_T("OutlookAnimation"), CBCGPOutlookWnd::IsAnimation ());
CFrameWnd::OnClose();
}
//*********************************************************************************
void CMainFrame::OnUpdateIndicatorSendReceive (CCmdUI* pCmdUI)
{
pCmdUI->Enable ();
}
//********************************************************************************
void CMainFrame::OnChangeLook (BOOL bOutlookBar2003)
{
/*
BOOL bIsLook2003 = CBCGPVisualManager::GetInstance ()->IsKindOf (
RUNTIME_CLASS (CBCGPVisualManager2003));
CBCGPOutlookBar& bar = m_bOutlookBar2003 ? m_wndBarOutlook2003 : m_wndBarOutlook;
m_bOutlookBar2003 = bOutlookBar2003;
if ((bar.GetStyle () & WS_VISIBLE) != 0)
{
if (m_bOutlookBar2003)
{
ShowControlBar (&m_wndBarOutlook2003, TRUE, FALSE, TRUE);
ShowControlBar (&m_wndBarOutlook, FALSE, FALSE, TRUE);
}
else
{
ShowControlBar (&m_wndBarOutlook, TRUE, FALSE, TRUE);
ShowControlBar (&m_wndBarOutlook2003, FALSE, FALSE, TRUE);
}
}
//-----------------------
// Reload toolbar images:
//-----------------------
CWindowDC dc (NULL);
int nBitsPerPixel = dc.GetDeviceCaps (BITSPIXEL);
BOOL bIsHiColor = bIsLook2003 && nBitsPerPixel > 16;
CBCGPToolBar::ResetAllImages ();
CBCGPToolBar::AddToolBarForImageCollection (IDR_MENU_IMAGES,
bIsHiColor ? IDB_MENU_IMAGE_HC : 0);
// m_wndToolBar.LoadBitmap (bIsHiColor ? IDB_TOOLBAR_HC : IDR_MAINFRAME);
// m_wndToolBarAdvanced.LoadBitmap (bIsHiColor ? IDB_ADVANCED_HC : IDR_ADVANCED);
// m_wndToolBarWeb.LoadBitmap (bIsHiColor ? IDB_WEB_HC : IDR_WEB);
*/
/* CBCGPToolBarParams bmpParam;
bmpParam.m_uiMenuResID=IDR_DATABASE;
bmpParam.m_uiMenuDisabledResID=IDR_DATABASE;
bmpParam.m_uiColdResID=IDR_DATABASE;
bmpParam.m_uiDisabledResID=IDR_DATABASE;
bmpParam.m_uiHotResID=IDR_DATABASE;
bmpParam.m_uiLargeColdResID=IDB_OUTLOOK_LARGE;
bmpParam.m_uiLargeHotResID=IDB_OUTLOOK_LARGE;
bmpParam.m_uiLargeDisabledResID=IDB_OUTLOOK_LARGE;
m_wndDatabase.LoadBitmapEx(bmpParam,FALSE);
*/
/* m_wndDatabase.LoadBitmap(bIsHiColor ?IDB_TOOLBAR_HC:IDR_DATABASE );
m_wndRFID.LoadBitmap(bIsHiColor ?IDB_TOOLBAR_HC:IDR_RFID);
m_wndComm.LoadBitmap(bIsHiColor ?IDB_TOOLBAR_HC:IDR_COMM);
CBCGPOutlookWnd* pOutlookBar = (CBCGPOutlookWnd*)
m_wndBarOutlook2003.GetUnderlinedWindow ();
if (pOutlookBar != NULL)
{
pOutlookBar->SetImageList (bIsHiColor ? IDB_PAGES_HC : IDB_PAGES, 24);
pOutlookBar->SetToolbarImageList (bIsHiColor ? IDB_PAGES_SMALL_HC : IDB_PAGES_SMALL, 16);
m_wndBarOutlook2003.RecalcLayout ();
}
RedrawWindow (NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
*/
}
void CMainFrame::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
{
m_wndCaption.SetFont (NULL);
CFrameWnd::OnSettingChange(uFlags, lpszSection);
m_wndCaption.SetFont (&globalData.fontBold);
}
LRESULT CMainFrame::OnMapedRFID(WPARAM wParam, LPARAM lParam)
{
return LRESULT();
}
BOOL CMainFrame::CreateTaskPane ()
{
CRect rectDummy(0, 0, 200, 400);
if (!m_wndTaskPane.Create(_T("操作工具栏"), this, rectDummy, TRUE, ID_VIEW_TASKPANE,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_BCGP_CLOSE | CBRS_BCGP_FLOAT))
{
TRACE0("Failed to create task pane\n");
return FALSE; // fail to create
}
return TRUE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?