資源簡介
在vs2012下寫的mfc單文檔模擬時鐘日歷程序,對于初學mfc的新手是個不錯的資源
代碼片段和文件信息
#include?“stdafx.h“
#include?“MainFrm.h“
#include?“ClassView.h“
#include?“Resource.h“
#include?“ClockShower.h“
class?CClassViewMenuButton?:?public?CMFCToolBarMenuButton
{
friend?class?CClassView;
DECLARE_SERIAL(CClassViewMenuButton)
public:
CClassViewMenuButton(HMENU?hMenu?=?NULL)?:?CMFCToolBarMenuButton((UINT)-1?hMenu?-1)
{
}
virtual?void?OnDraw(CDC*?pDC?const?CRect&?rect?CMFCToolBarImages*?pImages?BOOL?bHorz?=?TRUE
BOOL?bCustomizeMode?=?FALSE?BOOL?bHighlight?=?FALSE?BOOL?bDrawBorder?=?TRUE?BOOL?bGrayDisabledButtons?=?TRUE)
{
pImages?=?CMFCToolBar::GetImages();
CAfxDrawState?ds;
pImages->PrepareDrawImage(ds);
CMFCToolBarMenuButton::OnDraw(pDC?rect?pImages?bHorz?bCustomizeMode?bHighlight?bDrawBorder?bGrayDisabledButtons);
pImages->EndDrawImage(ds);
}
};
IMPLEMENT_SERIAL(CClassViewMenuButton?CMFCToolBarMenuButton?1)
//////////////////////////////////////////////////////////////////////
//?構造/析構
//////////////////////////////////////////////////////////////////////
CClassView::CClassView()
{
m_nCurrSort?=?ID_SORTING_GROUPBYTYPE;
}
CClassView::~CClassView()
{
}
BEGIN_MESSAGE_MAP(CClassView?CDockablePane)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_CLASS_ADD_MEMBER_FUNCTION?OnClassAddMemberFunction)
ON_COMMAND(ID_CLASS_ADD_MEMBER_VARIABLE?OnClassAddMemberVariable)
ON_COMMAND(ID_CLASS_DEFINITION?OnClassDefinition)
ON_COMMAND(ID_CLASS_PROPERTIES?OnClassProperties)
ON_COMMAND(ID_NEW_FOLDER?OnNewFolder)
ON_WM_PAINT()
ON_WM_SETFOCUS()
ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE?ID_SORTING_SORTBYACCESS?OnSort)
ON_UPDATE_COMMAND_UI_RANGE(ID_SORTING_GROUPBYTYPE?ID_SORTING_SORTBYACCESS?OnUpdateSort)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CClassView?消息處理程序
int?CClassView::OnCreate(LPCREATESTRUCT?lpCreateStruct)
{
if?(CDockablePane::OnCreate(lpCreateStruct)?==?-1)
return?-1;
CRect?rectDummy;
rectDummy.SetRectEmpty();
//?創建視圖:
const?DWORD?dwViewstyle?=?WS_CHILD?|?WS_VISIBLE?|?TVS_HASLINES?|?TVS_LINESATROOT?|?TVS_HASBUTTONS?|?WS_CLIPSIBLINGS?|?WS_CLIPCHILDREN;
if?(!m_wndClassView.Create(dwViewstyle?rectDummy?this?2))
{
TRACE0(“未能創建類視圖\n“);
return?-1;??????//?未能創建
}
//?加載圖像:
m_wndToolBar.Create(this?AFX_DEFAULT_TOOLBAR_style?IDR_SORT);
m_wndToolBar.LoadToolBar(IDR_SORT?0?0?TRUE?/*?已鎖定*/);
onchangeVisualstyle();
m_wndToolBar.SetPanestyle(m_wndToolBar.GetPanestyle()?|?CBRS_TOOLTIPS?|?CBRS_FLYBY);
m_wndToolBar.SetPanestyle(m_wndToolBar.GetPanestyle()?&?~(CBRS_GRIPPER?|?CBRS_SIZE_DYNAMIC?|?CBRS_BORDER_TOP?|?CBRS_BORDER_BOTTOM?|?CBRS_BORDER_LEFT?|?CBRS_BORDER_RIGHT));
m_wndToolBar.SetOwner(this);
//?所有命令將通過此控件路由,而不是通過主框架路由:
m_wndToolBar.SetRouteCommandsViaframe(FALSE);
CMenu?menuSort;
menuSort.LoadMenu(IDR_POPUP_SORT);
m_wndToolBar.ReplaceButton(ID_SORT_MENU?CClassViewMenuButton(m
評論
共有 條評論