📄 bcgpworkspace.cpp
字号:
{
// Defaults to automatically saving state.
SaveState(0, pFrame);
}
//--------------------------------------------------------
// the next one have to be called explicitly in your code:
//--------------------------------------------------------
BOOL CBCGPWorkspace::OnViewDoubleClick (CWnd* pWnd, int iViewId)
{
if (g_pMouseManager == NULL)
{
ASSERT (FALSE);
return FALSE;
}
ASSERT_VALID (g_pMouseManager);
UINT uiCmd = g_pMouseManager->GetViewDblClickCommand (iViewId);
if (uiCmd > 0 && uiCmd != (UINT) -1)
{
if (g_pUserToolsManager != NULL &&
g_pUserToolsManager->InvokeTool (uiCmd))
{
return TRUE;
}
CWnd* pTargetWnd = (pWnd == NULL) ?
AfxGetMainWnd () :
BCGCBProGetTopLevelFrame (pWnd);
ASSERT_VALID (pTargetWnd);
pTargetWnd->SendMessage (WM_COMMAND, uiCmd);
return TRUE;
}
MessageBeep ((UINT) -1);
return FALSE;
}
//***********************************************************************************
BOOL CBCGPWorkspace::ShowPopupMenu (UINT uiMenuResId, const CPoint& point, CWnd* pWnd)
{
if (g_pContextMenuManager == NULL)
{
ASSERT (FALSE);
return FALSE;
}
ASSERT_VALID (g_pContextMenuManager);
return g_pContextMenuManager->ShowPopupMenu (uiMenuResId,
point.x, point.y, pWnd);
}
//***********************************************************************************
BOOL CBCGPWorkspace::LoadWindowPlacement (
CRect& rectNormalPosition, int& nFlags, int& nShowCmd)
{
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, TRUE);
if (!reg.Open (GetRegSectionPath (strWindowPlacementRegSection)))
{
return FALSE;
}
return reg.Read (strRectMainKey, rectNormalPosition) &&
reg.Read (strFlagsKey, nFlags) &&
reg.Read (strShowCmdKey, nShowCmd);
}
//***********************************************************************************
BOOL CBCGPWorkspace::StoreWindowPlacement (
const CRect& rectNormalPosition, int nFlags, int nShowCmd)
{
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, FALSE);
if (!reg.CreateKey (GetRegSectionPath (strWindowPlacementRegSection)))
{
return FALSE;
}
return reg.Write (strRectMainKey, rectNormalPosition) &&
reg.Write (strFlagsKey, nFlags) &&
reg.Write (strShowCmdKey, nShowCmd);
}
//*************************************************************************************
//*************************************************************************************
// These functions load and store values from the "Custom" subkey
// To use subkeys of the "Custom" subkey use GetSectionInt() etc.
// instead
int CBCGPWorkspace::GetInt(LPCTSTR lpszEntry, int nDefault /*= 0*/)
{
return GetSectionInt(_T(""), lpszEntry, nDefault);
}
//*************************************************************************************
CString CBCGPWorkspace::GetString(LPCTSTR lpszEntry, LPCTSTR lpszDefault /*= ""*/)
{
return GetSectionString(_T(""), lpszEntry, lpszDefault);
}
//*************************************************************************************
BOOL CBCGPWorkspace::GetBinary(LPCTSTR lpszEntry, LPBYTE* ppData, UINT* pBytes)
{
return GetSectionBinary(_T(""), lpszEntry, ppData, pBytes);
}
//*************************************************************************************
BOOL CBCGPWorkspace::GetObject(LPCTSTR lpszEntry, CObject& obj)
{
return GetSectionObject(_T(""), lpszEntry, obj);
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteInt(LPCTSTR lpszEntry, int nValue )
{
return WriteSectionInt(_T(""), lpszEntry, nValue);
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteString(LPCTSTR lpszEntry, LPCTSTR lpszValue )
{
return WriteSectionString(_T(""), lpszEntry, lpszValue);
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteBinary(LPCTSTR lpszEntry, LPBYTE pData, UINT nBytes)
{
return WriteSectionBinary(_T(""), lpszEntry, pData, nBytes);
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteObject(LPCTSTR lpszEntry, CObject& obj)
{
return WriteSectionObject(_T(""), lpszEntry, obj);
}
//*************************************************************************************
//*************************************************************************************
// These functions load and store values from a given subkey
// of the "Custom" subkey. For simpler access you may use
// GetInt() etc.
int CBCGPWorkspace::GetSectionInt( LPCTSTR lpszSubSection, LPCTSTR lpszEntry, int nDefault /*= 0*/)
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
int nRet = nDefault;
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, TRUE);
if (reg.Open (strSection))
{
reg.Read (lpszEntry, nRet);
}
return nRet;
}
//*************************************************************************************
CString CBCGPWorkspace::GetSectionString( LPCTSTR lpszSubSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault /*= ""*/)
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
ASSERT(lpszDefault);
CString strRet = lpszDefault;
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, TRUE);
if (reg.Open (strSection))
{
reg.Read (lpszEntry, strRet);
}
return strRet;
}
//*************************************************************************************
BOOL CBCGPWorkspace::GetSectionBinary(LPCTSTR lpszSubSection, LPCTSTR lpszEntry, LPBYTE* ppData, UINT* pBytes)
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
ASSERT(ppData);
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, TRUE);
if (reg.Open (strSection)
&& reg.Read (lpszEntry, ppData, pBytes) )
{
return TRUE;
}
return FALSE;
}
//*************************************************************************************
BOOL CBCGPWorkspace::GetSectionObject(LPCTSTR lpszSubSection, LPCTSTR lpszEntry, CObject& obj)
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
ASSERT_VALID(&obj);
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, TRUE);
if (reg.Open (strSection) && reg.Read (lpszEntry, obj))
{
return TRUE;
}
return FALSE;
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteSectionInt( LPCTSTR lpszSubSection, LPCTSTR lpszEntry, int nValue )
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, FALSE);
if (reg.CreateKey (strSection))
{
return reg.Write (lpszEntry, nValue);
}
return FALSE;
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteSectionString( LPCTSTR lpszSubSection, LPCTSTR lpszEntry, LPCTSTR lpszValue )
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
ASSERT(lpszValue);
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, FALSE);
if (reg.CreateKey (strSection))
{
return reg.Write (lpszEntry, lpszValue);
}
return FALSE;
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteSectionBinary(LPCTSTR lpszSubSection, LPCTSTR lpszEntry, LPBYTE pData, UINT nBytes)
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
ASSERT(pData);
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, FALSE);
if (reg.CreateKey (strSection))
{
return reg.Write (lpszEntry, pData, nBytes);
}
return FALSE;
}
//*************************************************************************************
BOOL CBCGPWorkspace::WriteSectionObject(LPCTSTR lpszSubSection, LPCTSTR lpszEntry, CObject& obj)
{
ASSERT(lpszSubSection);
ASSERT(lpszEntry);
ASSERT_VALID(&obj);
CString strSection = GetRegSectionPath(lpszSubSection);
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, FALSE);
if (reg.CreateKey (strSection))
{
return reg.Write (lpszEntry, obj);
}
return FALSE;
}
//**********************************************************************************
void CBCGPWorkspace::OnAppContextHelp (CWnd* pWndControl, const DWORD dwHelpIDArray [])
{
// By Sven Ritter
::WinHelp (pWndControl->GetSafeHwnd (),
AfxGetApp()->m_pszHelpFilePath,
HELP_CONTEXTMENU, (DWORD)(LPVOID) dwHelpIDArray);
}
//*************************************************************************************
BOOL CBCGPWorkspace::SaveState (CBCGPMDIFrameWnd* pFrame, LPCTSTR
lpszSectionName /*=NULL*/)
{
// By Lex Loep
ASSERT_VALID (pFrame);
return SaveState (lpszSectionName, &pFrame->m_Impl);
}
//*************************************************************************************
BOOL CBCGPWorkspace::SaveState (CBCGPFrameWnd* pFrame, LPCTSTR lpszSectionName
/*=NULL*/)
{
// By Lex Loep
ASSERT_VALID (pFrame);
return SaveState (lpszSectionName, &pFrame->m_Impl);
}
//***********************************************************************************
BOOL CBCGPWorkspace::SaveState (CBCGPOleIPFrameWnd* pFrame, LPCTSTR
lpszSectionName /*=NULL*/)
{
// By Lex Loep
ASSERT_VALID (pFrame);
return SaveState (lpszSectionName, &pFrame->m_Impl);
}
//***********************************************************************************
BOOL CBCGPWorkspace::IsStateExists(LPCTSTR lpszSectionName /*=NULL*/)
{
if (lpszSectionName != NULL)
{
m_strRegSection = lpszSectionName;
}
CString strSection = GetRegSectionPath ();
//------------------------
// Loaded library version:
//------------------------
CBCGPRegistrySP regSP;
CBCGPRegistry& reg = regSP.Create (FALSE, TRUE);
return reg.Open (GetRegSectionPath (strRegEntryVersion));
}
#if defined _AFXDLL && !defined _BCGCBPRO_STATIC_ // Skins manager can not be used in the static version
void CBCGPWorkspace::OnSelectSkin ()
{
CFrameWnd* pMainWnd = DYNAMIC_DOWNCAST (CFrameWnd, AfxGetMainWnd ());
if (pMainWnd != NULL)
{
pMainWnd->RecalcLayout ();
}
for (POSITION posTlb = gAllToolbars.GetHeadPosition (); posTlb != NULL;)
{
CBCGPToolBar* pToolBar = (CBCGPToolBar*) gAllToolbars.GetNext (posTlb);
ASSERT (pToolBar != NULL);
if (CWnd::FromHandlePermanent (pToolBar->m_hWnd) != NULL)
{
ASSERT_VALID(pToolBar);
pToolBar->AdjustLayout ();
}
}
CBCGPVisualManager::GetInstance ()->RedrawAll ();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -