📄 richedit.h
字号:
//#include <windows.h>
#include<commctrl.h>
#include <afxpriv.h>//标示UNICODE常量
//#pragma comment(lib,"comctl32.lib")
#define MY_ID 1400
#define ID_STATUSBAR MY_ID+1
#define ID_TOOLBAR MY_ID+2
#define ID_RICHEDIT MY_ID+3
//extern HANDLE hRichFile;//参数 of DWORD CALLBACK _EditStreamCallback
HANDLE hRichFile;//extern 参数 of RichEdit CALLBACK _EditStreamCallback
HINSTANCE hRich;
HWND hRichEdit;
HINSTANCE LoadRichLib(){return LoadLibrary((LPCTSTR)"RichEd20.dll");}
int FreeRichLib(HINSTANCE hRich){
int Re;Re=FreeLibrary(hRich);
if (Re){return 1;}else{return 0;}}
HWND InitRichEdit(HWND hWndPar,HINSTANCE hInst,int id){
HWND _hrichEdit;
_hrichEdit=CreateWindowEx(WS_OVERLAPPED,"RichEdit20A",NULL,WS_EX_TOPMOST|WS_CHILD|WS_VISIBLE |WS_DLGFRAME|ES_MULTILINE |ES_NOHIDESEL |WS_MINIMIZEBOX|WS_VSCROLL ,
0,0,0,0,hWndPar,(HMENU)id,hInst,NULL);
if (_hrichEdit){SendMessage(_hrichEdit,EM_SETEVENTMASK,0,ENM_MOUSEEVENTS | ENM_DROPFILES | ENM_SCROLL | ENM_SELCHANGE);}
return _hrichEdit;}
int SetMaxText(HWND hRich,int dwTextMax){SendMessage(hRich,EM_EXLIMITTEXT,0,(LPARAM)dwTextMax);return 1;}
DWORD CALLBACK _EditStreamCallback (
DWORD dwCookie, // application-defined value
LPBYTE pbBuff, // pointer to a buffer
LONG cb, // number of bytes to read or write
LONG *pcb // pointer to number of bytes transferred
){if(dwCookie){ReadFile(hRichFile,(LPVOID)pbBuff,(DWORD)cb,(LPDWORD)pcb,0);}
else{WriteFile(hRichFile,(LPVOID)pbBuff,(DWORD)cb,(LPDWORD)pcb,0);}
return 0;}
int Proc_SaveFile(HWND hRichEdit){
EDITSTREAM stEs;
stEs.dwCookie=FALSE;
stEs.pfnCallback=_EditStreamCallback;
SendMessage(hRichEdit,EM_STREAMOUT,SF_TEXT,(LPARAM)&stEs);
SendMessage(hRichEdit,EM_SETMODIFY,FALSE,0);
return 0;}
int Proc_OpenFile(HWND hRichEdit){
EDITSTREAM stEs;
stEs.dwCookie=TRUE;
stEs.pfnCallback=_EditStreamCallback;
SendMessage(hRichEdit,EM_STREAMIN,SF_TEXT,(LPARAM)&stEs);
SendMessage(hRichEdit,EM_SETMODIFY,FALSE,0);
return 0;}
int _SaveFile(HWND hWnd,TCHAR *f_FileName){
OPENFILENAME ofn ;
ZeroMemory(&ofn,sizeof(OPENFILENAME));
static CHAR szFilter[] = "ALL FILE(*.*) \0*.*\0" ;
ofn.lStructSize = sizeof( OPENFILENAME) ;
ofn.hwndOwner = hWnd;//HWND_DESKTOP;
ofn.lpstrFilter = szFilter ;
ofn.nFilterIndex = 0 ;
ofn.nMaxFile = 256 ;
ofn.lpstrTitle = "请选择目标保存文件:" ;
ofn.lpstrFile =f_FileName;
ofn.Flags = OFN_CREATEPROMPT |OFN_OVERWRITEPROMPT ;
if(!GetSaveFileName( &ofn)){FillMemory(f_FileName,sizeof(f_FileName),0);
return 0;}else{return 1;}
// MessageBox(NULL,"",FileName,MB_OK);
}
int _OpenFile(HWND hWnd,TCHAR *f_FileName){
OPENFILENAME ofn ;
static CHAR szFilter[] = "ALL FILE(*.*) \0*.*\0" ;
ZeroMemory(&ofn, sizeof( OPENFILENAME)) ;
ofn.lStructSize = sizeof( OPENFILENAME) ;
// ofn.hwndOwner = hWnd;//HWND_DESKTOP;
ofn.lpstrFilter = szFilter ;
ofn.nFilterIndex = 0 ;
ofn.nMaxFile = 256 ;
ofn.lpstrTitle = "请选择目标数据库文件:" ;
ofn.lpstrFile = f_FileName ;
ofn.Flags = OFN_FILEMUSTEXIST |
OFN_PATHMUSTEXIST | OFN_EXPLORER ;
if(!GetOpenFileName( &ofn)){FillMemory(f_FileName,sizeof(f_FileName),0);
return 0;}else{return 1;}
// MessageBox(NULL,"",FileName,MB_OK);
}
int GetLineText(HWND hRichEdit,int Line,char * szLineText)
{ZeroMemory (szLineText,sizeof(szLineText));
szLineText[0]=(sizeof(szLineText) & 0xff00)>>8;//高8位
szLineText[1]=(sizeof(szLineText) & 0xff);//低8位
return SendMessage(hRichEdit,EM_GETLINE,Line,(LPARAM)szLineText);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -