?? myeditor.cpp
字號:
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 + -