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

📄 myeditor.cpp

📁 文本编辑器是最简单的VC程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			           fChange=FALSE;
				   }
			       e.FontInitialize(hWndEdit);                              //字体初始
				   break; 
				case IDC_EDIT:                                              //编辑框修改状态
					/*if (HIWORD(lParam)==EN_CHANGE)*/fChange=TRUE;
					break;
				case IDM_OPEN:                                              // 处理打开文件菜单
                   
					if(fChange==TRUE)                                        //判断文件是否被修改  
				   {                                          
					 //如果被修改了,发送是否保存当前文件消息并处理                       				
				      switch(MessageBox(hWnd,TEXT ("是否保存当前文件?"),"警告",MB_YESNOCANCEL))
					  {
				      case IDYES:                                            //保存并打开文件
					     if (ofn.lpstrFileTitle == NULL)
						 {
			              e.FileInitialize(&ofn);
			              e.FileSaveDlg(&ofn ,szFileName ,szTitleName);
						 }
			             e.FileWrite(ofn.lpstrFile);
			             e.FileInitialize(&ofn);
					     if (e.FileOpenDlg(&ofn, szFileName , szTitleName))
						 {
						  e.FileRead ( ofn.lpstrFile);
					      SetWindowText(hWnd,ofn.lpstrFileTitle);
					      fChange=FALSE;
						 }
					   break;
                      case IDNO:                                              //不保存,打开文件
				         e.FileInitialize(&ofn);
					     if (e.FileOpenDlg(&ofn, szFileName , szTitleName))
						 {
				          e.FileRead ( ofn.lpstrFile);
					      SetWindowText(hWnd,ofn.lpstrFileTitle);
					      fChange=FALSE;
						 }
				         break;
				      case IDCANCEL:                                           //取消操作
				         fChange=TRUE;
					     break; 
					  }
				   }
				   else                                                        //打开文件
				   {
				    e.FileInitialize(&ofn);
					if (e.FileOpenDlg(&ofn, szFileName , szTitleName))
					{
					e.FileRead ( ofn.lpstrFile);
					SetWindowText(hWnd,ofn.lpstrFileTitle);
					fChange=FALSE;
					}
				   }
					e.FontInitialize(hWndEdit);                                //字体初始
					break; 
		        case IDM_SAVE:                                             // 处理保存菜单
                    e.FileWrite(ofn.lpstrFile);
					fChange=FALSE;
					break;   
		        case IDM_SAVEAS:                                           // 处理另存为菜单
                    e.FileInitialize(&ofn);
					e.FileSaveDlg(&ofn ,szFileName ,szTitleName);
					e.FileWrite(ofn.lpstrFile);
					SetWindowText(hWnd,ofn.lpstrFileTitle);
					fChange=FALSE;
					break; 
				case IDM_UNDO:                                             // 处理撤消菜单
                    // 当有可撤消的操作时发送WM_UNDO消息 
                    if (SendMessage(hWndEdit, EM_CANUNDO, 0, 0)) 
                        SendMessage(hWndEdit, WM_UNDO, 0, 0); 
                    else 
                    {
                        MessageBox(hWndEdit, 
                             "没有可撤消的操作", 
                             "撤消 消息", MB_OK); 
                    }

				    break;
				case IDM_DEL:                                               // 处理删除菜单
                    SendMessage (hWndEdit, WM_CLEAR, 0, 0); 
                    break; 
                case IDM_COPY:                                              // 处理拷贝菜单
                    SendMessage (hWndEdit, WM_COPY, 0, 0) ;
					break;
		        case IDM_CUT:                                               // 处理剪切菜单
                    SendMessage (hWndEdit, WM_CUT, 0, 0) ;
					break; 
		        case IDM_PASTE:                                             // 处理粘贴菜单
                    SendMessage (hWndEdit, WM_PASTE, 0, 0) ;
					break;
				case IDM_SETALL:                                            // 处理全选菜单
                    SendMessage (hWndEdit, EM_SETSEL, 0, -1) ;
				    break;
				case IDM_FIND:                                              // 处理查找菜单
                    SendMessage (hWndEdit, EM_GETSEL, 0, (LPARAM) &iOffset) ;
                   
					hDlgModeless = e.FindFindDlg(&fr);
			
					break; 
				case IDM_FINDNEXT:                                           // 处理查找下一个菜单
                    SendMessage (hWndEdit, EM_GETSEL, 0, (LPARAM) &iOffset) ;
                    if(e.FindValidFind())                                    //判断是否有需查找的字符串
						e.FindNextText(&iOffset,&fr);
					else
                        hDlgModeless = e.FindFindDlg(&fr);
				    break;
				case IDM_REPLACE:                                            // 处理替换菜单
                    SendMessage (hWndEdit, EM_GETSEL, 0, (LPARAM) &iOffset) ;
					//if (e.FindValidFind ())
                        hDlgModeless = e.FindReplaceDlg(&fr);
					break; 
	            case IDM_FONT:                                               // 处理字体菜单
                    e.SetFont(&cf,hSetFont,&fChange);
					fChange=TRUE;
					break; 
				case IDM_EXIT:                                               // 处理退出菜单
				    
					if(fChange==TRUE)                                        //提示是否保存
					{                 				
				    switch(MessageBox(hWnd,TEXT ("是否保存当前文件?"),"警告",MB_YESNOCANCEL))
					{
				     case IDYES:
					   if (ofn.lpstrFileTitle == NULL)
					   {
			           e.FileInitialize(&ofn);
			           e.FileSaveDlg(&ofn ,szFileName ,szTitleName);
					   }
			           e.FileWrite(ofn.lpstrFile);
			           DestroyWindow(hWnd);
					   break;
                     case IDNO:
				       DestroyWindow(hWnd);
				       break;
				     case IDCANCEL:
				       fChange=TRUE;
					   break; 
					}
					}
				    else 
				     
					DestroyWindow(hWnd);
					
				    break;
				default:
				    return DefWindowProc(hWnd, message, wParam, lParam);
			}
			break;

		case WM_SIZE: //rejust its size
			MoveWindow(hWndEdit,0,0,LOWORD(lParam),HIWORD(lParam),true);      // 调整滚动条位置
		    break;
		case WM_SETFOCUS:                                                     // 光标初始
			SetFocus(hWndEdit);
			fChange=FALSE;
			break;
		case WM_CLOSE:                                                        //窗口关闭处理
 
             // 创建消息窗口,确认是否退出
             // 选“YES”的就关闭窗口 
 
            if (MessageBox(hWnd, "是否退出?", "确认", MB_YESNO) == IDYES)           
			     DestroyWindow(hWnd);
		
            return 0; 
	        break;
	    case WM_DESTROY:                        
			PostQuitMessage(0); 
			break;
		default:                                                 // 处理"查找-替换"消息
			if (message == messageFindReplace)
		{
         pfr = (LPFINDREPLACEA) lParam ;
               
         if (pfr->Flags & FR_DIALOGTERM)
             hDlgModeless = NULL ;
               
         if (pfr->Flags & FR_FINDNEXT)
             if (!e.FindFindText ( &iOffset, pfr))
                 MessageBox (hWnd, TEXT ("字符串未找到!"), TEXT (""),MB_OK) ;
                    
         if (pfr->Flags & FR_REPLACE || pfr->Flags & FR_REPLACEALL)
             if (!e.FindReplaceText ( &iOffset, pfr))
                 MessageBox (hWnd, TEXT ("字符串未找到!"), TEXT (""),MB_OK) ;
                         
         if (pfr->Flags & FR_REPLACEALL)
             while (e.FindReplaceText ( &iOffset, pfr)) ;
             return 0 ;
		}
		return DefWindowProc(hWnd, message, wParam, lParam);
		break;	
   }
   return 0;
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)              //关于信息框的处理
{
static SYSTEMTIME time;
static TCHAR      szMsg[20] ;
	switch (message)
	{
		case WM_INITDIALOG:
		    //获得并在ABOUT窗口显示系统日期
			GetLocalTime(&time) ;
	        wsprintf(szMsg, TEXT("你好,今天是%u年%02u月%02u日。"), time.wYear, time.wMonth, time.wDay) ;
			SetWindowText(GetDlgItem(hDlg,IDC_STATIC1),szMsg);
			
			return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

⌨️ 快捷键说明

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