todolistwnd.cpp
来自「管理项目进度工具的原代码」· C++ 代码 · 共 2,024 行 · 第 1/5 页
CPP
2,024 行
// ToDoListWnd.cpp : implementation file
//
#include "stdafx.h"
#include "ToDoList.h"
#include "ToDoListWnd.h"
#include "ToolsCmdlineParser.h"
#include "ToolsUserInputDlg.h"
#include "Toolshelper.h"
#include "exportDlg.h"
#include "tasklisthtmlexporter.h"
#include "tasklisttxtexporter.h"
#include "tdcmsg.h"
#include "tdlprintdialog.h"
#include "tdltransformdialog.h"
#include "tdstringres.h"
#include "tdlcolumnselectiondlg.h"
#include "filterdlg.h"
#include "OffsetDatesDlg.h"
#include "KeyboardShortcutDisplayDlg.h"
#include "..\shared\aboutdlg.h"
#include "..\shared\holdredraw.h"
#include "..\shared\autoflag.h"
#include "..\shared\enbitmap.h"
#include "..\shared\spellcheckdlg.h"
#include "..\shared\encolordialog.h"
#include "..\shared\winclasses.h"
#include "..\shared\wclassdefines.h"
#include "..\shared\datehelper.h"
#include "..\shared\osversion.h"
#include "..\shared\enfiledialog.h"
#include "..\shared\misc.h"
#include "..\shared\browserdlg.h"
#include "..\shared\themed.h"
#include "..\shared\enstring.h"
#include "..\shared\fileregister.h"
#include "..\shared\mousewheelMgr.h"
#include "..\shared\dlgunits.h"
#include "..\shared\passworddialog.h"
#include "..\shared\sysimagelist.h"
#include "..\shared\importexportuihelper.h"
#include "..\shared\regkey.h"
#include "..\shared\uiextensionuihelper.h"
#include "..\3rdparty\gui.h"
#include "..\3rdparty\sendfileto.h"
#include <shlwapi.h>
#include <windowsx.h>
#include <direct.h>
#include <math.h>
#ifdef _AFXDLL
//# define COMPILE_MULTIMON_STUBS
#endif
#pragma warning(disable:4706)
#include <multimon.h>
#pragma warning(default:4706)
#include <afxpriv.h> // for WM_KICKIDLE
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CToDoListWnd dialog
// popup menus
enum { TRAYICON, TASKCONTEXT, TABCTRLCONTEXT, HEADERCONTEXT };
enum { TB_TOOLBARHIDDEN, TB_DUMMY, TB_TOOLBARANDMENU };
enum { FILEALL, NEWTASK, EDITTASK, VIEW, MOVE, SORTTASK, DELETETASK, TOOLS, HELP };
const int TD_VERSION = 31000;
const int SB_HEIGHT = 10; // dlu
const int BEVEL = 2; // pixels
const int BORDER = 3; // pixels
enum
{
WM_POSTONCREATE = (WM_APP+1),
WM_WEBUPDATEWIZARD,
WM_ADDTOOLBARTOOLS,
};
enum
{
TIMER_READONLYSTATUS = 1,
TIMER_TIMESTAMPCHANGE,
TIMER_AUTOSAVE,
TIMER_CHECKOUTSTATUS,
TIMER_DUEITEMS,
TIMER_TIMETRACKING,
};
enum
{
INTERVAL_READONLYSTATUS = 1000,
INTERVAL_TIMESTAMPCHANGE = 10000,
// INTERVAL_AUTOSAVE, // dynamically determined
INTERVAL_CHECKOUTSTATUS = 5000,
INTERVAL_DUEITEMS = 60000,
INTERVAL_TIMETRACKING = 5000,
};
struct SHORTCUT
{
DWORD dwShortcut;
UINT nIDShortcut;
};
static SHORTCUT MISC_SHORTCUTS[] =
{
{ MAKELONG('B', HOTKEYF_ALT | HOTKEYF_EXT), IDS_SETFOCUS2TASLIST },
/*
{ 0, 0 },
{ MAKELONG(VK_UP, HOTKEYF_CONTROL | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_DOWN, HOTKEYF_CONTROL | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_PRIOR, HOTKEYF_CONTROL | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_NEXT, HOTKEYF_CONTROL | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
*/
{ 0, 0 },
{ MAKELONG(VK_UP, HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_DOWN, HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_PRIOR, HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_NEXT, HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
/*
{ 0, 0 },
{ MAKELONG(VK_UP, HOTKEYF_CONTROL | HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_DOWN, HOTKEYF_CONTROL | HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_PRIOR, HOTKEYF_CONTROL | HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION },
{ MAKELONG(VK_NEXT, HOTKEYF_CONTROL | HOTKEYF_SHIFT | HOTKEYF_EXT), IDS_TASKLISTEXTENDEDSELECTION }
*/
};
static int NUM_MISCSHORTCUTS = sizeof(MISC_SHORTCUTS) / sizeof(SHORTCUT);
/////////////////////////////////////////////////////////////////////////////
CToDoListWnd::CToDoListWnd() : CFrameWnd(),
m_bVisible(-1),
m_mruList(0, "MRU", "TaskList%d", 16, AFX_ABBREV_FILENAME_LEN, CEnString(IDS_RECENTFILES)),
m_nLastSelItem(-1),
m_bMaxTasklists(FALSE),
m_bShowFilterBar(TRUE),
m_bShowStatusBar(TRUE),
m_bInNewTask(FALSE),
m_bSaving(FALSE),
m_mgrShortcuts(FALSE),
m_pPrefs(NULL),
m_bClosing(FALSE),
m_mgrToDoCtrls(m_tabCtrl),
m_bFindShowing(FALSE),
m_bShowProjectName(TRUE),
m_bQueryOpenAllow(FALSE),
m_bPasswordPrompting(TRUE),
m_bShowToolbar(TRUE),
m_bReloading(FALSE),
m_hIcon(NULL),
m_hwndLastFocus(NULL),
m_bStartHidden(FALSE)
{
// init content manager BEFORE prefs
VERIFY (m_mgrContent.Initialize());
// init preferences
ResetPrefs();
// set up UI strings for helper classes
CTimeHelper::SetUnits(THU_MINS, CEnString(IDS_MINS_ABBREV));
CTimeHelper::SetUnits(THU_HOURS, CEnString(IDS_HOURS_ABBREV));
CTimeHelper::SetUnits(THU_DAYS, CEnString(IDS_DAYS_ABBREV));
CTimeHelper::SetUnits(THU_WEEKS, CEnString(IDS_WEEKS_ABBREV));
CTimeHelper::SetUnits(THU_MONTHS, CEnString(IDS_MONTHS_ABBREV));
CTimeHelper::SetUnits(THU_YEARS, CEnString(IDS_YEARS_ABBREV));
CXmlFileEx::SetUIStrings(IDS_ENCRYPTEDFILE, IDS_DECRYPTFAILED);
CPasswordDialog::SetUIStrings(IDS_PASSWORDTITLE, IDS_PASSWORDPROMPT,
IDS_CONFIRMPROMPT, IDS_CONFIRMFAILED, IDS_OK, IDS_CANCEL);
CToDoCtrl::EnableExtendedSelection(FALSE, TRUE);
m_bAutoMenuEnable = FALSE;
}
CToDoListWnd::~CToDoListWnd()
{
CToDoCtrl::ReleaseClipboard();
delete m_pPrefs;
if (m_hIcon)
DestroyIcon(m_hIcon);
// cleanup temp files
::DeleteFile(FileMisc::GetTempFileName("ToDoList.print", "html"));
::DeleteFile(FileMisc::GetTempFileName("ToDoList.due", "html"));
::DeleteFile(FileMisc::GetTempFileName("ToDoList.due", "txt"));
}
BEGIN_MESSAGE_MAP(CToDoListWnd, CFrameWnd)
//{{AFX_MSG_MAP(CToDoListWnd)
ON_COMMAND(ID_VIEW_EXPANDTASK, OnViewExpandtask)
ON_UPDATE_COMMAND_UI(ID_VIEW_EXPANDTASK, OnUpdateViewExpandtask)
ON_COMMAND(ID_VIEW_COLLAPSETASK, OnViewCollapsetask)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLLAPSETASK, OnUpdateViewCollapsetask)
ON_COMMAND(ID_VIEW_COLLAPSEALL, OnViewCollapseall)
ON_COMMAND(ID_VIEW_EXPANDALL, OnViewExpandall)
ON_UPDATE_COMMAND_UI(ID_VIEW_EXPANDALL, OnUpdateViewExpandall)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLLAPSEALL, OnUpdateViewCollapseall)
ON_UPDATE_COMMAND_UI(ID_TOOLS_USEREXPORT1, OnUpdateUserExport1)
ON_UPDATE_COMMAND_UI(ID_TOOLS_USERIMPORT1, OnUpdateUserImport1)
ON_UPDATE_COMMAND_UI(ID_WINDOW1, OnUpdateWindow)
ON_WM_ACTIVATE()
ON_WM_ENABLE()
ON_COMMAND(ID_NEWTASK, OnNewtask)
ON_COMMAND(ID_NEWSUBTASK, OnNewsubtask)
ON_UPDATE_COMMAND_UI(ID_NEWSUBTASK, OnUpdateNewsubtask)
ON_COMMAND(ID_TOOLS_TRANSFORM, OnToolsTransformactivetasklist)
ON_COMMAND(ID_VIEW_SORTTASKLISTTABS, OnViewSorttasklisttabs)
ON_UPDATE_COMMAND_UI(ID_VIEW_SORTTASKLISTTABS, OnUpdateViewSorttasklisttabs)
ON_WM_MEASUREITEM()
ON_COMMAND(ID_EDIT_INCTASKPERCENTDONE, OnEditInctaskpercentdone)
ON_UPDATE_COMMAND_UI(ID_EDIT_INCTASKPERCENTDONE, OnUpdateEditInctaskpercentdone)
ON_COMMAND(ID_EDIT_DECTASKPERCENTDONE, OnEditDectaskpercentdone)
ON_UPDATE_COMMAND_UI(ID_EDIT_DECTASKPERCENTDONE, OnUpdateEditDectaskpercentdone)
ON_COMMAND(ID_EDIT_DECTASKPRIORITY, OnEditDectaskpriority)
ON_UPDATE_COMMAND_UI(ID_EDIT_DECTASKPRIORITY, OnUpdateEditDectaskpriority)
ON_COMMAND(ID_EDIT_INCTASKPRIORITY, OnEditInctaskpriority)
ON_UPDATE_COMMAND_UI(ID_EDIT_INCTASKPRIORITY, OnUpdateEditInctaskpriority)
ON_COMMAND(ID_EDIT_FLAGTASK, OnEditFlagtask)
ON_UPDATE_COMMAND_UI(ID_EDIT_FLAGTASK, OnUpdateEditFlagtask)
ON_COMMAND(ID_FILE_OPENARCHIVE, OnFileOpenarchive)
ON_UPDATE_COMMAND_UI(ID_FILE_OPENARCHIVE, OnUpdateFileOpenarchive)
ON_WM_WINDOWPOSCHANGED()
ON_COMMAND(ID_VIEW_REFRESHFILTER, OnViewRefreshfilter)
ON_UPDATE_COMMAND_UI(ID_VIEW_REFRESHFILTER, OnUpdateViewRefreshfilter)
ON_COMMAND(ID_VIEW_SHOWFILTERBAR, OnViewShowfilterbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_SHOWFILTERBAR, OnUpdateViewShowfilterbar)
ON_COMMAND(ID_VIEW_CLEARFILTER, OnViewClearfilter)
ON_UPDATE_COMMAND_UI(ID_VIEW_CLEARFILTER, OnUpdateViewClearfilter)
ON_COMMAND(ID_VIEW_FILTER, OnViewFilter)
ON_UPDATE_COMMAND_UI(ID_VIEW_FILTER, OnUpdateViewFilter)
ON_COMMAND(ID_TABCTRL_PREFERENCES, OnTabctrlPreferences)
ON_COMMAND(ID_TASKLIST_SELECTCOLUMNS, OnTasklistSelectColumns)
ON_COMMAND(ID_VIEW_PROJECTNAME, OnViewProjectname)
ON_UPDATE_COMMAND_UI(ID_VIEW_PROJECTNAME, OnUpdateViewProjectname)
ON_COMMAND(ID_EDIT_OFFSETDATES, OnEditOffsetdates)
ON_UPDATE_COMMAND_UI(ID_EDIT_OFFSETDATES, OnUpdateEditOffsetdates)
ON_COMMAND(ID_PRINTPREVIEW, OnPrintpreview)
ON_COMMAND(ID_SHOWTIMELOGFILE, OnShowTimelogfile)
ON_UPDATE_COMMAND_UI(ID_SHOWTIMELOGFILE, OnUpdateShowTimelogfile)
ON_COMMAND(ID_VIEW_STATUS_BAR, OnViewStatusBar)
ON_UPDATE_COMMAND_UI(ID_VIEW_STATUS_BAR, OnUpdateViewStatusBar)
ON_WM_QUERYOPEN()
ON_COMMAND(ID_EDIT_COPYAS_REF, OnCopyTaskasRef)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPYAS_REF, OnUpdateCopyTaskasRef)
ON_COMMAND(ID_EDIT_COPYAS_DEPEND, OnCopyTaskasDependency)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPYAS_DEPEND, OnUpdateCopyTaskasDependency)
ON_COMMAND(ID_EDIT_COPYAS_REFFULL, OnCopyTaskasRefFull)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPYAS_REFFULL, OnUpdateCopyTaskasRefFull)
ON_COMMAND(ID_EDIT_COPYAS_DEPENDFULL, OnCopyTaskasDependencyFull)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPYAS_DEPENDFULL, OnUpdateCopyTaskasDependencyFull)
ON_COMMAND(ID_EDIT_COPYAS_PATH, OnCopyTaskasPath)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPYAS_PATH, OnUpdateCopyTaskasPath)
ON_WM_WINDOWPOSCHANGING()
ON_COMMAND(ID_TOOLS_CHECKFORUPDATES, OnToolsCheckforupdates)
ON_COMMAND(ID_HELP_KEYBOARDSHORTCUTS, OnShowKeyboardshortcuts)
ON_COMMAND(ID_EDIT_INSERTDATETIME, OnEditInsertdatetime)
ON_UPDATE_COMMAND_UI(ID_EDIT_INSERTDATETIME, OnUpdateEditInsertdatetime)
ON_WM_SYSCOLORCHANGE()
ON_COMMAND(ID_EDIT_CLEARTASKCOLOR, OnEditCleartaskcolor)
ON_UPDATE_COMMAND_UI(ID_EDIT_CLEARTASKCOLOR, OnUpdateEditCleartaskcolor)
ON_COMMAND(ID_EDIT_SELECTALL, OnEditSelectall)
ON_UPDATE_COMMAND_UI(ID_EDIT_SELECTALL, OnUpdateEditSelectall)
ON_COMMAND(ID_CLOSEALLBUTTHIS, OnCloseallbutthis)
ON_UPDATE_COMMAND_UI(ID_CLOSEALLBUTTHIS, OnUpdateCloseallbutthis)
ON_COMMAND(ID_SENDTASKS, OnSendtasks)
ON_COMMAND(ID_EDIT_INSERTDATE, OnEditInsertdate)
ON_UPDATE_COMMAND_UI(ID_EDIT_INSERTDATE, OnUpdateEditInsertdate)
ON_WM_SYSCOMMAND()
ON_WM_INITMENUPOPUP()
ON_COMMAND(ID_NEXTTASK, OnGotoNexttask)
ON_COMMAND(ID_PREVTASK, OnGotoPrevtask)
ON_UPDATE_COMMAND_UI(ID_PREVTASK, OnUpdateGotoPrevtask)
ON_UPDATE_COMMAND_UI(ID_NEXTTASK, OnUpdateGotoNexttask)
//}}AFX_MSG_MAP
ON_WM_CREATE()
ON_COMMAND_RANGE(ID_WINDOW1, ID_WINDOW16, OnWindow)
ON_COMMAND_RANGE(ID_TOOLS_USERIMPORT1, ID_TOOLS_USERIMPORT8, OnUserImport)
ON_COMMAND_RANGE(ID_TOOLS_USEREXPORT1, ID_TOOLS_USEREXPORT8, OnUserExport)
ON_COMMAND(ID_VIEW_NEXT, OnViewNext)
ON_UPDATE_COMMAND_UI(ID_VIEW_NEXT, OnUpdateViewNext)
ON_COMMAND(ID_VIEW_PREV, OnViewPrev)
ON_UPDATE_COMMAND_UI(ID_VIEW_PREV, OnUpdateViewPrev)
ON_WM_SYSCOMMAND()
ON_UPDATE_COMMAND_UI(ID_IMPORT_TASKLIST, OnUpdateImport)
ON_UPDATE_COMMAND_UI(ID_NEWTASK, OnUpdateNewtask)
ON_COMMAND(ID_TOOLS_CHECKOUT, OnToolsCheckout)
ON_UPDATE_COMMAND_UI(ID_TOOLS_CHECKOUT, OnUpdateToolsCheckout)
ON_COMMAND(ID_TOOLS_CHECKIN, OnToolsCheckin)
ON_UPDATE_COMMAND_UI(ID_TOOLS_CHECKIN, OnUpdateToolsCheckin)
ON_COMMAND(ID_TOOLS_TOGGLECHECKIN, OnToolsToggleCheckin)
ON_UPDATE_COMMAND_UI(ID_TOOLS_TOGGLECHECKIN, OnUpdateToolsToggleCheckin)
ON_COMMAND(ID_TOOLS_EXPORT, OnExport)
ON_UPDATE_COMMAND_UI(ID_TOOLS_EXPORT, OnUpdateExport)
ON_UPDATE_COMMAND_UI(ID_TOOLS_TRANSFORM, OnUpdateExport) // use same text as export
ON_COMMAND(ID_NEXTTOPLEVELTASK, OnNexttopleveltask)
ON_COMMAND(ID_PREVTOPLEVELTASK, OnPrevtopleveltask)
ON_UPDATE_COMMAND_UI(ID_NEXTTOPLEVELTASK, OnUpdateNexttopleveltask)
ON_UPDATE_COMMAND_UI(ID_PREVTOPLEVELTASK, OnUpdatePrevtopleveltask)
ON_COMMAND(ID_EDIT_FINDTASKS, OnFindTasks)
ON_COMMAND(ID_VIEW_MOVETASKLISTRIGHT, OnViewMovetasklistright)
ON_UPDATE_COMMAND_UI(ID_VIEW_MOVETASKLISTRIGHT, OnUpdateViewMovetasklistright)
ON_COMMAND(ID_VIEW_MOVETASKLISTLEFT, OnViewMovetasklistleft)
ON_UPDATE_COMMAND_UI(ID_VIEW_MOVETASKLISTLEFT, OnUpdateViewMovetasklistleft)
ON_COMMAND(ID_VIEW_TOOLBAR, OnViewToolbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR, OnUpdateViewToolbar)
ON_COMMAND(ID_SORT, OnSort)
ON_UPDATE_COMMAND_UI(ID_SORT, OnUpdateSort)
ON_COMMAND(ID_NEWTASK_ATTOP, OnNewtaskAttop)
ON_UPDATE_COMMAND_UI(ID_NEWTASK_ATTOP, OnUpdateNewtaskAttop)
ON_COMMAND(ID_NEWTASK_ATBOTTOM, OnNewtaskAtbottom)
ON_UPDATE_COMMAND_UI(ID_NEWTASK_ATBOTTOM, OnUpdateNewtaskAtbottom)
ON_COMMAND(ID_EDIT_SPELLCHECKCOMMENTS, OnSpellcheckcomments)
ON_UPDATE_COMMAND_UI(ID_EDIT_SPELLCHECKCOMMENTS, OnUpdateSpellcheckcomments)
ON_COMMAND(ID_EDIT_SPELLCHECKTITLE, OnSpellchecktitle)
ON_UPDATE_COMMAND_UI(ID_EDIT_SPELLCHECKTITLE, OnUpdateSpellchecktitle)
ON_COMMAND(ID_FILE_ENCRYPT, OnFileEncrypt)
ON_UPDATE_COMMAND_UI(ID_FILE_ENCRYPT, OnUpdateFileEncrypt)
ON_COMMAND(ID_FILE_RESETVERSION, OnFileResetversion)
ON_UPDATE_COMMAND_UI(ID_FILE_RESETVERSION, OnUpdateFileResetversion)
ON_COMMAND(ID_TOOLS_SPELLCHECKTASKLIST, OnSpellcheckTasklist)
ON_UPDATE_COMMAND_UI(ID_TOOLS_SPELLCHECKTASKLIST, OnUpdateSpellcheckTasklist)
ON_COMMAND(ID_EDIT_PASTEAFTER, OnEditPasteAfter)
ON_UPDATE_COMMAND_UI(ID_EDIT_PASTEAFTER, OnUpdateEditPasteAfter)
ON_COMMAND(ID_EDIT_CLOCK_TASK, OnEditTimeTrackTask)
ON_UPDATE_COMMAND_UI(ID_EDIT_CLOCK_TASK, OnUpdateEditTimeTrackTask)
ON_WM_DRAWITEM()
ON_COMMAND(ID_VIEW_NEXT_SEL, OnViewNextSel)
ON_UPDATE_COMMAND_UI(ID_VIEW_NEXT_SEL, OnUpdateViewNextSel)
ON_COMMAND(ID_VIEW_PREV_SEL, OnViewPrevSel)
ON_UPDATE_COMMAND_UI(ID_VIEW_PREV_SEL, OnUpdateViewPrevSel)
ON_COMMAND(ID_EDIT_CUT, OnEditCut)
ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut)
ON_COMMAND_RANGE(ID_NEWTASK_SPLITTASKINTO_TWO, ID_NEWTASK_SPLITTASKINTO_FIVE, OnSplitTaskIntoPieces)
ON_UPDATE_COMMAND_UI_RANGE(ID_NEWTASK_SPLITTASKINTO_TWO, ID_NEWTASK_SPLITTASKINTO_FIVE, OnUpdateSplitTaskIntoPieces)
ON_COMMAND_RANGE(ID_TOOLS_SHOWTASKS_DUETODAY, ID_TOOLS_SHOWTASKS_DUEENDNEXTMONTH, OnToolsShowtasksDue)
ON_COMMAND(ID_DELETETASK, OnDeleteTask)
ON_COMMAND(ID_DELETEALLTASKS, OnDeleteAllTasks)
ON_WM_SIZE()
ON_WM_GETMINMAXINFO()
ON_COMMAND(ID_SAVE_NORMAL, OnSave)
ON_COMMAND(ID_LOAD_NORMAL, OnLoad)
ON_COMMAND(ID_NEW, OnNew)
ON_UPDATE_COMMAND_UI(ID_DELETETASK, OnUpdateDeletetask)
ON_UPDATE_COMMAND_UI(ID_EDIT_TASKCOLOR, OnUpdateTaskcolor)
ON_UPDATE_COMMAND_UI(ID_EDIT_TASKDONE, OnUpdateTaskdone)
ON_UPDATE_COMMAND_UI(ID_DELETEALLTASKS, OnUpdateDeletealltasks)
ON_UPDATE_COMMAND_UI(ID_SAVE_NORMAL, OnUpdateSave)
ON_UPDATE_COMMAND_UI(ID_NEW, OnUpdateNew)
ON_WM_ERASEBKGND()
ON_COMMAND(ID_NEWTASK_ATTOPSELECTED, OnNewtaskAttopSelected)
ON_COMMAND(ID_NEWTASK_ATBOTTOMSELECTED, OnNewtaskAtbottomSelected)
ON_COMMAND(ID_NEWTASK_AFTERSELECTEDTASK, OnNewtaskAfterselectedtask)
ON_COMMAND(ID_NEWTASK_BEFORESELECTEDTASK, OnNewtaskBeforeselectedtask)
ON_COMMAND(ID_NEWSUBTASK_ATBOTTOM, OnNewsubtaskAtbottom)
ON_COMMAND(ID_NEWSUBTASK_ATTOP, OnNewsubtaskAttop)
ON_COMMAND(ID_EDIT_TASKCOLOR, OnEditTaskcolor)
ON_COMMAND(ID_EDIT_TASKDONE, OnEditTaskdone)
ON_COMMAND(ID_EDIT_TASKTEXT, OnEditTasktext)
ON_COMMAND(ID_MOVETASKDOWN, OnMovetaskdown)
ON_UPDATE_COMMAND_UI(ID_MOVETASKDOWN, OnUpdateMovetaskdown)
ON_COMMAND(ID_MOVETASKUP, OnMovetaskup)
ON_UPDATE_COMMAND_UI(ID_MOVETASKUP, OnUpdateMovetaskup)
ON_WM_CLOSE()
ON_COMMAND(ID_TRAYICON_CLOSE, OnTrayiconClose)
ON_UPDATE_COMMAND_UI(ID_NEWSUBTASK_ATBOTTOM, OnUpdateNewsubtaskAtBottom)
ON_COMMAND(ID_SAVEAS, OnSaveas)
ON_UPDATE_COMMAND_UI(ID_SAVEAS, OnUpdateSaveas)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_TRAYICON_SHOW, OnTrayiconShow)
ON_COMMAND_RANGE(ID_TRAYICON_SHOWDUETASKS1, ID_TRAYICON_SHOWDUETASKS20, OnTrayiconShowDueTasks)
ON_WM_QUERYENDSESSION()
ON_UPDATE_COMMAND_UI(ID_FILE_MRU_FILE1, OnUpdateRecentFileMenu)
ON_COMMAND(ID_ABOUT, OnAbout)
ON_COMMAND(ID_PREFERENCES, OnPreferences)
ON_WM_COPYDATA()
ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
ON_COMMAND(ID_EDIT_PASTESUB, OnEditPasteSub)
ON_COMMAND(ID_EDIT_COPYAS_TEXT, OnEditCopyastext)
ON_COMMAND(ID_EDIT_COPYAS_HTML, OnEditCopyashtml)
ON_UPDATE_COMMAND_UI(ID_EDIT_PASTESUB, OnUpdateEditPasteSub)
ON_UPDATE_COMMAND_UI(ID_NEWTASK_ATTOPSELECTED, OnUpdateNewtaskAttopSelected)
ON_UPDATE_COMMAND_UI(ID_NEWTASK_ATBOTTOMSELECTED, OnUpdateNewtaskAtbottomSelected)
ON_UPDATE_COMMAND_UI(ID_NEWTASK_AFTERSELECTEDTASK, OnUpdateNewtaskAfterselectedtask)
ON_UPDATE_COMMAND_UI(ID_NEWTASK_BEFORESELECTEDTASK, OnUpdateNewtaskBeforeselectedtask)
ON_UPDATE_COMMAND_UI(ID_NEWSUBTASK_ATTOP, OnUpdateNewsubtaskAttop)
ON_COMMAND(ID_SIMPLEMODE, OnSimplemode)
ON_UPDATE_COMMAND_UI(ID_SIMPLEMODE, OnUpdateSimplemode)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?