📄 fixedminiframewnd.cpp
字号:
// FixedMiniFrameWnd.cpp : implementation file
//
#include "stdafx.h"
#include "afxpriv.h"
#include "resource.h"
#include "FixedMiniFrameWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFixedMiniDockFrameWnd
IMPLEMENT_DYNCREATE(CFixedMiniFrameWnd, CMiniDockFrameWnd)
CFixedMiniFrameWnd::CFixedMiniFrameWnd()
{
}
CFixedMiniFrameWnd::~CFixedMiniFrameWnd()
{
}
BOOL CFixedMiniFrameWnd::Create(CWnd* pParent, DWORD dwBarStyle)
{
// set m_bInRecalcLayout to avoid flashing during creation
// RecalcLayout will be called once something is docked
m_bInRecalcLayout = TRUE;
DWORD dwStyle = WS_POPUP|WS_CAPTION|WS_SYSMENU|MFS_MOVEFRAME|
MFS_4THICKFRAME|MFS_SYNCACTIVE|MFS_BLOCKSYSMENU|
FWS_SNAPTOBARS;
if (dwBarStyle & CBRS_SIZE_DYNAMIC)
dwStyle &= ~MFS_MOVEFRAME;
DWORD dwExStyle = 0;
#ifdef _MAC
if (dwBarStyle & CBRS_SIZE_DYNAMIC)
dwExStyle |= WS_EX_FORCESIZEBOX;
else
dwStyle &= ~(MFS_MOVEFRAME|MFS_4THICKFRAME);
#endif
if (!CMiniFrameWnd::CreateEx(dwExStyle,
NULL, &afxChNil, dwStyle, rectDefault, pParent))
{
m_bInRecalcLayout = FALSE;
return FALSE;
}
dwStyle = dwBarStyle & (CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT) ?
CBRS_ALIGN_LEFT : CBRS_ALIGN_TOP;
dwStyle |= dwBarStyle & CBRS_FLOAT_MULTI;
CMenu* pSysMenu = GetSystemMenu(FALSE);
pSysMenu->DeleteMenu(SC_SIZE, MF_BYCOMMAND);
pSysMenu->DeleteMenu(SC_MAXIMIZE, MF_BYCOMMAND);
pSysMenu->DeleteMenu(SC_MINIMIZE, MF_BYCOMMAND);
CString str;
if (str.LoadString(AFX_IDS_HIDE))
pSysMenu->ModifyMenu(SC_CLOSE,
MF_BYCOMMAND|MF_STRING|MF_ENABLED, SC_CLOSE, str);
if (str.LoadString(AFX_IDS_DOCK))
pSysMenu->ModifyMenu(SC_RESTORE,
MF_BYCOMMAND|MF_STRING|MF_ENABLED, SC_RESTORE, str);
// must initially create with parent frame as parent
if (!m_wndDockBar.Create(pParent, WS_CHILD | WS_VISIBLE | dwStyle,
AFX_IDW_DOCKBAR_FLOAT))
{
m_bInRecalcLayout = FALSE;
return FALSE;
}
// set parent to CMiniDockFrameWnd
m_wndDockBar.SetParent(this);
m_bInRecalcLayout = FALSE;
return TRUE;
}
BEGIN_MESSAGE_MAP(CFixedMiniFrameWnd, CMiniDockFrameWnd)
//{{AFX_MSG_MAP(CFixedMiniFrameWnd)
ON_WM_SYSCOMMAND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFixedMiniFrameWnd message handlers
void CFixedMiniFrameWnd::OnSysCommand(UINT nID, LPARAM)
{
switch (nID & 0xFFF0)
{
case SC_RESTORE:
OnNcLButtonDblClk( HTCAPTION, CPoint(0,0));
return;
}
Default();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -