⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 akeldll.h

📁 一个类似于notepad的文本编辑器源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
typedef struct _TEXTREPLACEW {
  DWORD dwFlags;            //Search flags
  wchar_t *wpFindIt;        //Find string
  wchar_t *wpReplaceWith;   //Replace string
  BOOL bAll;                //Replace all
  int nChanges;             //Count of changes
} TEXTREPLACEW;

typedef struct _TEXTRECODE {
  int nCodePageFrom;        //Source code page
  int nCodePageTo;          //Target code page
} TEXTRECODE;

typedef struct _NOPENDOCUMENTA {
  char *szFile;                  //Pointer to a file string buffer
  int *nCodePage;                //Pointer to a code page variable
  BOOL *bBOM;                    //Pointer to a BOM variable
  DWORD *dwFlags;                //Pointer to a open flags variable
  BOOL bProcess;                 //TRUE   open file
                                 //FALSE  do not open file
} NOPENDOCUMENTA;

typedef struct _NOPENDOCUMENTW {
  wchar_t *wszFile;              //Pointer to a file string buffer
  int *nCodePage;                //Pointer to a code page variable
  BOOL *bBOM;                    //Pointer to a BOM variable
  DWORD *dwFlags;                //Pointer to a open flags variable
  BOOL bProcess;                 //TRUE   open file
                                 //FALSE  do not open file
} NOPENDOCUMENTW;

typedef struct _NSAVEDOCUMENTA {
  char *szFile;                  //Pointer to a file string buffer
  int *nCodePage;                //Pointer to a code page variable
  BOOL *bBOM;                    //Pointer to a BOM variable
  BOOL bProcess;                 //TRUE   save file
                                 //FALSE  do not save file
} NSAVEDOCUMENTA;

typedef struct _NSAVEDOCUMENTW {
  wchar_t *wszFile;              //Pointer to a file string buffer
  int *nCodePage;                //Pointer to a code page variable
  BOOL *bBOM;                    //Pointer to a BOM variable
  BOOL bProcess;                 //TRUE   save file
                                 //FALSE  do not save file
} NSAVEDOCUMENTW;

typedef struct _NMAINSHOW {
  DWORD *dwStyle;            //Pointer to a maximized state variable (WS_MAXIMIZE or zero)
  DWORD *dwShow;             //Pointer to a SW_ constants combination variable
  BOOL bProcess;             //TRUE   show main window
                             //FALSE  do not show main window
} NMAINSHOW;


//AkelPad menu messages:
#define IDM_FILE_NEW                    4101  //Create new RichEdit window
#define IDM_FILE_CREATENEW              4102  //Create new instance of program
#define IDM_FILE_OPEN                   4103  //Open file dialog
#define IDM_FILE_REOPEN                 4104  //Reopen file
#define IDM_FILE_SAVE                   4105  //Save file
#define IDM_FILE_SAVEAS                 4106  //Save file dialog
#define IDM_FILE_PAGESETUP              4107  //Print setup dialog
#define IDM_FILE_PRINT                  4108  //Print dialog
#define IDM_FILE_EXIT                   4109  //Exit program
#define IDM_FILE_SAVEALL                4110  //Save all (MDI)
#define IDM_EDIT_UNDO                   4151  //Undo last operation
#define IDM_EDIT_REDO                   4152  //Redo last operation
#define IDM_EDIT_CUT                    4153  //Cut
#define IDM_EDIT_COPY                   4154  //Copy
#define IDM_EDIT_PASTE                  4155  //Paste
#define IDM_EDIT_CLEAR                  4156  //Delete
#define IDM_EDIT_SELECTALL              4157  //Select all
#define IDM_EDIT_FIND                   4158  //Find dialog
#define IDM_EDIT_FINDNEXTDOWN           4159  //Find last string down
#define IDM_EDIT_FINDNEXTUP             4160  //Find last string up
#define IDM_EDIT_REPLACE                4161  //Replace dialog
#define IDM_EDIT_GOTOLINE               4162  //Go to line dialog
#define IDM_EDIT_INSERTCHAR             4163  //Run charmap.exe
#define IDM_EDIT_INSERT_TAB             4164  //Insert tabulation
#define IDM_EDIT_INSERT_TAB_MENU        4165  //Insert tabulation only if several lines selected
#define IDM_EDIT_DELETE_TAB             4166  //Delete tabulation
#define IDM_EDIT_DELETE_TAB_MENU        4167  //Delete tabulation only if several lines selected
#define IDM_EDIT_INSERT_SPACE           4168  //Insert space
#define IDM_EDIT_INSERT_SPACE_MENU      4169  //Insert space only if several lines selected
#define IDM_EDIT_DELETE_SPACE           4170  //Delete space
#define IDM_EDIT_DELETE_SPACE_MENU      4171  //Delete space only if several lines selected
#define IDM_EDIT_DELETE_FIRST_CHAR      4172  //Delete first char
#define IDM_EDIT_DELETE_FIRST_CHAR_MENU 4173  //Delete first char only if selection not empty
#define IDM_EDIT_DELETE_TRAILING_WHITESPACES 4174  //Delete trailing whitespaces
#define IDM_EDIT_UPPERCASE              4175  //Convert text to UPPERCASE
#define IDM_EDIT_LOWERCASE              4176  //Convert text to lowercase
#define IDM_EDIT_SENTENCECASE           4177  //Convert text to Sentence case.
#define IDM_EDIT_TITLECASE              4178  //Convert text to Title Case
#define IDM_EDIT_INVERTCASE             4179  //Convert text to iNVERT cASE
#define IDM_EDIT_NEWLINE_WIN            4180  //Windows new line format
#define IDM_EDIT_NEWLINE_UNIX           4181  //Unix new line format
#define IDM_EDIT_RECODE                 4182  //Recode dialog
#define IDM_VIEW_FONT                   4201  //Font dialog
#define IDM_VIEW_TEXT_COLOR             4202  //Text color dialog
#define IDM_VIEW_BG_COLOR               4203  //Background color dialog
#define IDM_VIEW_INCREASE_FONT          4204  //Increase font 1px
#define IDM_VIEW_DECREASE_FONT          4205  //Decrease font 1px
#define IDM_VIEW_ALIGN_LEFT             4206  //Left text align
#define IDM_VIEW_ALIGN_CENTER           4207  //Center text align
#define IDM_VIEW_ALIGN_RIGHT            4208  //Right text align
#define IDM_VIEW_WORDWRAP               4209  //Word wrap (on\off)
#define IDM_VIEW_ONTOP                  4210  //Always on top (on\off)
#define IDM_VIEW_SHOW_STATUSBAR         4211  //Show statusbar (on\off)
#define IDM_OPTIONS_EXEC                4251  //Execute command
#define IDM_OPTIONS_SAVETIME            4252  //Save file time (on\off)
#define IDM_OPTIONS_WATCHFILE           4253  //Watch file change (on\off)
#define IDM_OPTIONS_KEEPSPACE           4254  //Keep space (on\off)
#define IDM_OPTIONS_SINGLEOPEN_FILE     4255  //Single open file (on\off)
#define IDM_OPTIONS_SINGLEOPEN_PROGRAM  4256  //Single open program (on\off)
#define IDM_OPTIONS_SDI                 4257  //SDI mode
#define IDM_OPTIONS_MDI                 4258  //MDI mode
#define IDM_OPTIONS_PLUGINS             4259  //Plugins dialog
#define IDM_OPTIONS                     4260  //Options dialog
#define IDM_OPTIONS_READONLY            4261  //Read only (on\off)
#define IDM_WINDOW_TABVIEW_TOP          4301  //MDI tab window at the top of the main window
#define IDM_WINDOW_TABVIEW_BOTTOM       4302  //MDI tab window at the bottom of the main window
#define IDM_WINDOW_TABVIEW_NONE         4303  //Hide MDI tab
#define IDM_WINDOW_TABTYPE_STANDART     4304  //Standart MDI tab style
#define IDM_WINDOW_TABTYPE_BUTTONS      4305  //Buttons MDI tab style
#define IDM_WINDOW_TABTYPE_FLATBUTTONS  4306  //Flat buttons MDI tab style
#define IDM_WINDOW_TILEHORIZONTAL       4307  //MDI windows - horizontal tile
#define IDM_WINDOW_TILEVERTICAL         4308  //MDI windows - vertical tile
#define IDM_WINDOW_CASCADE              4309  //MDI windows - cascade
#define IDM_ABOUT                       4351  //About dialog
#define IDM_NONMENU_CHANGESIZE          4401  //Change style of the main window SW_RESTORE\SW_MAXIMIZE
#define IDM_NONMENU_DELLINE             4402  //Delete current line
#define IDM_NONMENU_PASTEANSI           4403  //Paste as ANSI text
#define IDM_NONMENU_MDINEXT             4404  //Activate next MDI window
#define IDM_NONMENU_MDIPREV             4405  //Activate previous MDI window
#define IDM_NONMENU_MDICLOSE            4406  //Close current MDI window
#define IDM_NONMENU_REOPEN_MSG          4407  //Show message that file is changed, if answer "Yes" reopen the file
#define IDM_NONMENU_REDETECT            4408  //Redetect code page of the current file
#define IDM_NONMENU_REOPENAS_ANSI       4409  //Reopen file as ANSI
#define IDM_NONMENU_REOPENAS_OEM        4410  //Reopen file as OEM
#define IDM_NONMENU_REOPENAS_UTF16LE    4411  //Reopen file as UTF16LE
#define IDM_NONMENU_REOPENAS_UTF16BE    4412  //Reopen file as UTF16BE
#define IDM_NONMENU_REOPENAS_UTF8       4413  //Reopen file as UTF8
#define IDM_NONMENU_REOPENAS_KOIR       4414  //Reopen file as KOI-R
#define IDM_NONMENU_SAVEAS_ANSI         4415  //Save file as ANSI
#define IDM_NONMENU_SAVEAS_OEM          4416  //Save file as OEM
#define IDM_NONMENU_SAVEAS_UTF16LE      4417  //Save file as UTF16LE
#define IDM_NONMENU_SAVEAS_UTF16BE      4418  //Save file as UTF16BE
#define IDM_NONMENU_SAVEAS_UTF8         4419  //Save file as UTF8
#define IDM_NONMENU_SAVEAS_KOIR         4420  //Save file as KOI-R
#define IDM_NONMENU_INSERTMODE          4421  //Insert mode (on\off)
#define IDM_RECENT_FILES                5001  //Delete dead recent files
                                              //5001 + n  open recent file n
#define IDM_LANGUAGE                    6001  //Activate internal language
                                              //6001 + n  activate language n
#define IDM_POPUP_OPENAS                7001  //7001 + n  open as popup menu item
#define IDM_POPUP_SAVEAS                8001  //8001 + n  save as popup menu item
                                              //
                                              //Example:
                                              //SendMessage(pd->hMainWnd, WM_COMMAND, IDM_FILE_NEW, 0);

//AkelPad WM_USER messages

#define AKDN_MAIN_ONSTART          (WM_USER + 1)
#define AKDN_MAIN_ONSTART_PRESHOW  (WM_USER + 2)
#define AKDN_MAIN_ONSTART_SHOW     (WM_USER + 3)
#define AKDN_MAIN_ONSTART_FINISH   (WM_USER + 4)
#define AKDN_MAIN_ONFINISH         (WM_USER + 5)
#define AKDN_EDIT_ONSTART          (WM_USER + 6)
#define AKDN_EDIT_ONFINISH         (WM_USER + 7)
#define AKDN_EDIT_RBUTTONUP        (WM_USER + 8)
#define AKDN_FRAME_NOWINDOWS       (WM_USER + 9)
#define AKDN_OPENDOCUMENT_START    (WM_USER + 10)
#define AKDN_OPENDOCUMENT_FINISH   (WM_USER + 11)
#define AKDN_SAVEDOCUMENT_START    (WM_USER + 12)
#define AKDN_SAVEDOCUMENT_FINISH   (WM_USER + 13)
#define AKDN_SIZE                  (WM_USER + 14)
#define AKDN_SEARCH_ENDED          (WM_USER + 15)
#define AKDN_ACTIVATE              (WM_USER + 16)
#define AKDN_RECENTFILESDELETE     (WM_USER + 17)
#define AKD_GETMAINPROC            (WM_USER + 101)
#define AKD_SETMAINPROC            (WM_USER + 102)
#define AKD_GETMAINPROCRET         (WM_USER + 103)
#define AKD_SETMAINPROCRET         (WM_USER + 104)
#define AKD_GETEDITPROC            (WM_USER + 105)
#define AKD_SETEDITPROC            (WM_USER + 106)
#define AKD_GETEDITPROCRET         (WM_USER + 107)
#define AKD_SETEDITPROCRET         (WM_USER + 108)
#define AKD_GETFRAMEPROC           (WM_USER + 109)
#define AKD_SETFRAMEPROC           (WM_USER + 110)
#define AKD_GETFRAMEPROCRET        (WM_USER + 111)
#define AKD_SETFRAMEPROCRET        (WM_USER + 112)
#define AKD_BEGINOPTIONS           (WM_USER + 113)
#define AKD_OPTION                 (WM_USER + 114)
#define AKD_ENDOPTIONS             (WM_USER + 115)
#define AKD_DLLCALL                (WM_USER + 116)
#define AKD_DLLUNLOAD              (WM_USER + 117)
#define AKD_DLLFIND                (WM_USER + 118)
#define AKD_DLLADD                 (WM_USER + 119)
#define AKD_DLLDELETE              (WM_USER + 120)
#define AKD_SAVEDOCUMENT           (WM_USER + 121)
#define AKD_GETTEXTLENGTH          (WM_USER + 122)
#define AKD_GETTEXTRANGE           (WM_USER + 123)
#define AKD_FREETEXT               (WM_USER + 124)
#define AKD_REPLACESELA            (WM_USER + 125)
#define AKD_REPLACESELW            (WM_USER + 126)
#define AKD_PASTE                  (WM_USER + 127)
#define AKD_COPY                   (WM_USER + 128)
#define AKD_TEXTFIND               (WM_USER + 129)
#define AKD_TEXTREPLACE            (WM_USER + 130)
#define AKD_GETEDITINFO            (WM_USER + 131)
#define AKD_GETFONT                (WM_USER + 132)
#define AKD_SETFONT                (WM_USER + 133)
#define AKD_SETMODIFY              (WM_USER + 134)
#define AKD_SETFILEPRINT           (WM_USER + 135)
#define AKD_SETMSGCREATE           (WM_USER + 136)
#define AKD_SETMSGBINARY           (WM_USER + 137)
#define AKD_GETQUEUE               (WM_USER + 138)
#define AKD_GETPRINTDLG            (WM_USER + 139)
#define AKD_GETPAGEDLG             (WM_USER + 140)
#define AKD_GETSELTEXTW            (WM_USER + 141)
#define AKD_GLOBALALLOC            (WM_USER + 142)
#define AKD_GLOBALLOCK             (WM_USER + 143)
#define AKD_GLOBALUNLOCK           (WM_USER + 144)
#define AKD_GLOBALFREE             (WM_USER + 145)
#define AKD_GETMODELESS            (WM_USER + 146)
#define AKD_SETMODELESS            (WM_USER + 147)
#define AKD_GETCODEPAGELIST        (WM_USER + 148)
#define AKD_RECODESEL              (WM_USER + 149)
#define AKD_SETNEWLINE             (WM_USER + 150)

/*
AKDN_MAIN_ONSTART
_________________

Internal message.


AKDN_MAIN_ONSTART_PRESHOW
_________________________

Notification message, sends to the main procedure before showing main window.

wParam              == not used
(NMAINSHOW *)lParam == show main window characteristics, program show code is:
                         NMAINSHOW *nms=(NMAINSHOW *)lParam;

                         ShowWindow(hMainWnd, (nms->dwStyle == WS_MAXIMIZE)?SW_SHOWMAXIMIZED:SW_SHOW);
                         if (nms->dwShow != SW_SHOWNORMAL) ShowWindow(hMainWnd, nms->dwShow);

Return Value
 zero


AKDN_MAIN_ONSTART_SHOW
______________________

Notification message, sends to the main procedure when main window is shown.

wParam == not used
lParam == not used

Return Value
 zero


AKDN_MAIN_ONSTART_FINISH
________________________

Notification message, sends to the main procedure when main window is finished initialize.

wParam == not used
lParam == not used

Return Value
 zero


AKDN_MAIN_ONFINISH
__________________

Notification message, sends to the main procedure before destroying main window.

wParam == not used
lParam == not used

Return Value
 zero


AKDN_EDIT_ONSTART
_________________

Notification message, sends to the main procedure after rich edit window created.

(HWND)wParam == rich edit window
lParam       == not used

Return Value
 zero


AKDN_EDIT_ONFINISH
__________________

Notification message, sends to the main procedure before destroying edit window.

(HWND)wParam == rich edit window
lParam       == not used

Return Value
 zero


AKDN_EDIT_RBUTTONUP
___________________

Notification message, sends to the main procedure before displaying rich edit context menu.

(HWND)wParam   == rich edit window
(BOOL *)lParam == TRUE   show context menu
                  FALSE  don't show context menu

Return Value
 zero


AKDN_FRAME_NOWINDOWS
____________________

Notification message, sends to the main procedure when no frame windows in MDI client.

wParam == not used
lParam == not used

Return Value
 zero


AKDN_OPENDOCUMENT_START
_______________________

Notification message, sends to the main procedure before document opened.

(HWND)wParam            == rich edit window
(NOPENDOCUMENT *)lParam == pointer to a NOPENDOCUMENT structure
                           (NOPENDOCUMENTA *)lParam   if bOldWindows == TRUE
                           (NOPENDOCUMENTW *)lParam   if bOldWindows == FALSE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -