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

📄 richedit.h

📁 一个记事本编辑器,自己写的,希望对大家有用,十分感谢
💻 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 + -