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

📄 notepad2.c

📁 C语言编程中算法数据结构中的树行代码
💻 C
📖 第 1 页 / 共 5 页
字号:
          break;

        ZeroMemory(&sei,sizeof(SHELLEXECUTEINFO));

        sei.cbSize = sizeof(SHELLEXECUTEINFO);
        sei.fMask = SEE_MASK_NOCLOSEPROCESS;
        sei.hwnd = hwnd;
        sei.lpVerb = NULL;
        sei.lpFile = szCurFile;
        sei.lpParameters = NULL;
        sei.lpDirectory = NULL;
        sei.nShow = SW_SHOWNORMAL;

        ShellExecuteEx(&sei);
      }
      break;


    case IDM_FILE_RUN:
      {
        char tchCmdLine[MAX_PATH+4];

        if (bSaveBeforeRunningTools && !FileSave(FALSE,TRUE,FALSE,FALSE))
          break;

        lstrcpy(tchCmdLine,szCurFile);
        PathQuoteSpaces(tchCmdLine);

        RunDlg(hwnd,tchCmdLine);
      }
      break;


    case IDM_FILE_OPENWITH:
      if (bSaveBeforeRunningTools && !FileSave(FALSE,TRUE,FALSE,FALSE))
        break;
      OpenWithDlg(hwnd,szCurFile);
      break;


    case IDM_FILE_PAGESETUP:
      EditPrintSetup(hwndEdit);
      break;

    case IDM_FILE_PRINT:
      {
        SHFILEINFO shfi;
        char *pszTitle;
        char tchUntitled[32];
        char tchPageFmt[32];

        if (lstrlen(szCurFile)) {
          SHGetFileInfo2(szCurFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME);
          pszTitle = shfi.szDisplayName;
        }
        else {
          GetString(IDS_UNTITLED,tchUntitled,COUNTOF(tchUntitled));
          pszTitle = tchUntitled;
        }

        GetString(IDS_PRINT_PAGENUM,tchPageFmt,COUNTOF(tchPageFmt));

        if (!EditPrint(hwndEdit,pszTitle,tchPageFmt))
          MsgBox(MBWARN,IDS_PRINT_ERROR,pszTitle);
      }
      break;


    case IDM_FILE_PROPERTIES:
      {
        SHELLEXECUTEINFO sei;

        if (lstrlen(szCurFile) == 0)
          break;

        ZeroMemory(&sei,sizeof(SHELLEXECUTEINFO));

        sei.cbSize = sizeof(SHELLEXECUTEINFO);
        sei.fMask = SEE_MASK_INVOKEIDLIST | SEE_MASK_NOCLOSEPROCESS;
        sei.hwnd = hwnd;
        sei.lpVerb = "properties";
        sei.lpFile = szCurFile;
        sei.nShow = SW_SHOWNORMAL;

        ShellExecuteEx(&sei);
      }
      break;

    case IDM_FILE_CREATELINK:
      {
        if (!lstrlen(szCurFile))
          break;

        if (!PathCreateDeskLnk(szCurFile))
          MsgBox(MBWARN,IDS_ERR_CREATELINK);
      }
      break;


    case IDM_FILE_OPENFAV:
      if (FileSave(FALSE,TRUE,FALSE,FALSE)) {

        char tchSelItem[MAX_PATH];

        if (FavoritesDlg(hwnd,tchSelItem))
        {
          if (PathIsLnkToDirectory(tchSelItem,NULL,0))
            PathGetLnkPath(tchSelItem,tchSelItem,COUNTOF(tchSelItem));

          if (PathIsDirectory(tchSelItem))
          {
            char tchFile[MAX_PATH];

            if (OpenFileDlg(hwndMain,tchFile,COUNTOF(tchFile),tchSelItem))
              FileLoad(TRUE,FALSE,FALSE,FALSE,tchFile);
          }
          else
            FileLoad(TRUE,FALSE,FALSE,FALSE,tchSelItem);
          }
        }
      break;


    case IDM_FILE_ADDTOFAV:
      if (lstrlen(szCurFile)) {
        SHFILEINFO shfi;
        SHGetFileInfo2(szCurFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME);
        AddToFavDlg(hwnd,shfi.szDisplayName,szCurFile);
      }
      break;


    case IDM_FILE_MANAGEFAV:
      {
        SHELLEXECUTEINFO sei;
        ZeroMemory(&sei,sizeof(SHELLEXECUTEINFO));

        sei.cbSize = sizeof(SHELLEXECUTEINFO);
        sei.fMask = SEE_MASK_NOCLOSEPROCESS;
        sei.hwnd = hwnd;
        sei.lpVerb = NULL;
        sei.lpFile = tchFavoritesDir;
        sei.lpParameters = NULL;
        sei.lpDirectory = NULL;
        sei.nShow = SW_SHOWNORMAL;

        // Run favorites directory
        ShellExecuteEx(&sei);
      }
      break;


    case IDM_FILE_RECENT:
      if (MRU_Enum(pFileMRU,0,NULL,0) > 0) {
        if (FileSave(FALSE,TRUE,FALSE,FALSE)) {
          char tchFile[MAX_PATH];
          if (FileMRUDlg(hwnd,tchFile))
            FileLoad(TRUE,FALSE,FALSE,FALSE,tchFile);
          }
        }
      break;


    case IDM_FILE_EXIT:
      SendMessage(hwnd,WM_CLOSE,0,0);
      break;


    case IDM_ENCODING_ANSI:
    case IDM_ENCODING_UNICODE:
    case IDM_ENCODING_UNICODEREV:
    case IDM_ENCODING_UTF8:
    case IDM_ENCODING_UTF8SIGN:
      {
        int iNewCodePage = iEncodings[LOWORD(wParam)-IDM_ENCODING_ANSI];
        if (SendMessage(hwndEdit,SCI_GETLENGTH,0,0) == 0) {
          if (iCodePage != 0 && iNewCodePage != 0 || InfoBox(MBYESNO,IDS_ASK_ENCODING2,"MsgConv2") == IDYES) {
            EditConvertText(hwndEdit,
              (iCodePage == NCP_DEFAULT) ? iDefaultCodePage : SC_CP_UTF8,
              (iNewCodePage == NCP_DEFAULT) ? iDefaultCodePage : SC_CP_UTF8,
              (lstrlen(szCurFile) == 0));
            iCodePage = iNewCodePage;
            iInitialCP = iNewCodePage;
            UpdateToolbar();
            UpdateStatusbar();
            SetWindowTitle(hwnd,uidsAppTitle,IDS_UNTITLED,szCurFile,
              iPathNameFormat,bModified || iCodePage != iInitialCP,
              IDS_READONLY,bReadOnly);
          }
        }
        else if (iCodePage != iNewCodePage)
        {
          if (iCodePage != 0 && iNewCodePage != 0 || InfoBox(MBYESNO,IDS_ASK_ENCODING,"MsgConv1") == IDYES) {
            BeginWaitCursor();
            EditConvertText(hwndEdit,
              (iCodePage == NCP_DEFAULT) ? iDefaultCodePage : SC_CP_UTF8,
              (iNewCodePage == NCP_DEFAULT) ? iDefaultCodePage : SC_CP_UTF8,
              FALSE);
            iInitialCP = iCodePage;
            iCodePage = iNewCodePage;
            EndWaitCursor();
          }
          UpdateToolbar();
          UpdateStatusbar();
          SetWindowTitle(hwnd,uidsAppTitle,IDS_UNTITLED,szCurFile,
            iPathNameFormat,bModified || iCodePage != iInitialCP,
            IDS_READONLY,bReadOnly);
        }
      }
      break;


    case IDM_ENCODING_SETDEFAULT:
      SelectEncodingDlg(hwnd,&iDefaultEncoding);
      break;


    case IDM_LINEENDINGS_CRLF:
    case IDM_LINEENDINGS_LF:
    case IDM_LINEENDINGS_CR:
      {
        int iNewEOLMode = iLineEndings[LOWORD(wParam)-IDM_LINEENDINGS_CRLF];

        iEOLMode = iNewEOLMode;
        SendMessage(hwndEdit,SCI_SETEOLMODE,iEOLMode,0);
        SendMessage(hwndEdit,SCI_CONVERTEOLS,iEOLMode,0);
        UpdateToolbar();
        UpdateStatusbar();
        SetWindowTitle(hwnd,uidsAppTitle,IDS_UNTITLED,szCurFile,
          iPathNameFormat,bModified || iCodePage != iInitialCP,
          IDS_READONLY,bReadOnly);
      }
      break;


    case IDM_LINEENDINGS_SETDEFAULT:
      SelectLineEndingDlg(hwnd,&iDefaultEOLMode);
      break;


    case IDM_EDIT_UNDO:
      SendMessage(hwndEdit,SCI_UNDO,0,0);
      break;


    case IDM_EDIT_REDO:
      SendMessage(hwndEdit,SCI_REDO,0,0);
      break;


    case IDM_EDIT_CUT:
      if (flagPasteBoard)
        bLastCopyFromMe = TRUE;
      SendMessage(hwndEdit,SCI_CUT,0,0);
      break;


    case IDM_EDIT_COPY:
      if (flagPasteBoard)
        bLastCopyFromMe = TRUE;
      SendMessage(hwndEdit,SCI_COPY,0,0);
      UpdateToolbar();
      break;


    case IDM_EDIT_COPYALL:
      if (flagPasteBoard)
        bLastCopyFromMe = TRUE;
      SendMessage(hwndEdit,SCI_COPYRANGE,0,SendMessage(hwndEdit,SCI_GETLENGTH,0,0));
      UpdateToolbar();
      break;


    case IDM_EDIT_PASTE:
      SendMessage(hwndEdit,SCI_PASTE,0,0);
      break;


    case IDM_EDIT_SWAP:
      if (SendMessage(hwndEdit,SCI_GETSELECTIONEND,0,0) -
          SendMessage(hwndEdit,SCI_GETSELECTIONSTART,0,0) == 0) {
        int iNewPos = -1;
        int iPos = SendMessage(hwndEdit,SCI_GETCURRENTPOS,0,0);
        SendMessage(hwndEdit,SCI_PASTE,0,0);
        iNewPos = SendMessage(hwndEdit,SCI_GETCURRENTPOS,0,0);
        SendMessage(hwndEdit,SCI_SETSEL,iPos,iNewPos);
        SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_EDIT_CLEARCLIPBOARD,1),0);
      }
      else {
        int iPos = SendMessage(hwndEdit,SCI_GETCURRENTPOS,0,0);
        int iAnchor = SendMessage(hwndEdit,SCI_GETANCHOR,0,0);
        LPSTR pClip = EditGetClipboardText(hwndEdit);
        if (flagPasteBoard)
          bLastCopyFromMe = TRUE;
        SendMessage(hwndEdit,SCI_CUT,0,0);
        SendMessage(hwndEdit,SCI_REPLACESEL,(WPARAM)0,(LPARAM)pClip);
        if (iPos > iAnchor)
          SendMessage(hwndEdit,SCI_SETSEL,iAnchor,iAnchor + lstrlen(pClip));
        else
          SendMessage(hwndEdit,SCI_SETSEL,iPos + lstrlen(pClip),iPos);
        LocalFree(pClip);
      }
      break;


    case IDM_EDIT_CLEAR:
      SendMessage(hwndEdit,SCI_CLEAR,0,0);
      break;


    case IDM_EDIT_CLEARALL:
      SendMessage(hwndEdit,SCI_CLEARALL,0,0);
      break;


    case IDM_EDIT_CLEARCLIPBOARD:
      if (OpenClipboard(hwnd)) {
        if (CountClipboardFormats() > 0) {
          EmptyClipboard();
          UpdateToolbar();
          UpdateStatusbar();
        }
        CloseClipboard();
      }
      break;

    case IDM_EDIT_SELECTALL:
      SendMessage(hwndEdit,SCI_SELECTALL,0,0);
      //SendMessage(hwndEdit,SCI_SETSEL,0,(LPARAM)-1);
      break;


    case IDM_EDIT_SELECTWORD:
      {
        int iSel =
          SendMessage(hwndEdit,SCI_GETSELECTIONEND,0,0) -
          SendMessage(hwndEdit,SCI_GETSELECTIONSTART,0,0);

        int iPos = SendMessage(hwndEdit,SCI_GETCURRENTPOS,0,0);

        if (iSel == 0) {

          int iWordStart = SendMessage(hwndEdit,SCI_WORDSTARTPOSITION,iPos,TRUE);
          int iWordEnd   = SendMessage(hwndEdit,SCI_WORDENDPOSITION,iPos,TRUE);

          if (iWordStart == iWordEnd) // we are in whitespace salad...
          {
            iWordStart = SendMessage(hwndEdit,SCI_WORDENDPOSITION,iPos,FALSE);
            iWordEnd   = SendMessage(hwndEdit,SCI_WORDENDPOSITION,iWordStart,TRUE);
            if (iWordStart != iWordEnd) {
              //if (SCLEX_HTML == SendMessage(hwndEdit,SCI_GETLEXER,0,0) &&
              //    SCE_HPHP_VARIABLE == SendMessage(hwndEdit,SCI_GETSTYLEAT,(WPARAM)iWordStart,0) &&
              //    '$' == (char)SendMessage(hwndEdit,SCI_GETCHARAT,(WPARAM)iWordStart-1,0))
              //  iWordStart--;
              SendMessage(hwndEdit,SCI_SETSEL,iWordStart,iWordEnd);
            }
          }
          else {
            //if (SCLEX_HTML == SendMessage(hwndEdit,SCI_GETLEXER,0,0) &&
            //    SCE_HPHP_VARIABLE == SendMessage(hwndEdit,SCI_GETSTYLEAT,(WPARAM)iWordStart,0) &&
            //    '$' == (char)SendMessage(hwndEdit,SCI_GETCHARAT,(WPARAM)iWordStart-1,0))
            //  iWordStart--;
            SendMessage(hwndEdit,SCI_SETSEL,iWordStart,iWordEnd);
          }

          iSel =
            SendMessage(hwndEdit,SCI_GETSELECTIONEND,0,0) -
            SendMessage(hwndEdit,SCI_GETSELECTIONSTART,0,0);

          if (iSel == 0) {
            int iLine = SendMessage(hwndEdit,SCI_LINEFROMPOSITION,iPos,0);
            int iLineStart = SendMessage(hwndEdit,SCI_GETLINEINDENTPOSITION,iLine,0);
            int iLineEnd   = SendMessage(hwndEdit,SCI_GETLINEENDPOSITION,iLine,0);
            SendMessage(hwndEdit,SCI_SETSEL,iLineStart,iLineEnd);
          }
        }
        else {
          int iLine = SendMessage(hwndEdit,SCI_LINEFROMPOSITION,iPos,0);
          int iLineStart = SendMessage(hwndEdit,SCI_GETLINEINDENTPOSITION,iLine,0);
          int iLineEnd   = SendMessage(hwndEdit,SCI_GETLINEENDPOSITION,iLine,0);
          SendMessage(hwndEdit,SCI_SETSEL,iLineStart,iLineEnd);
        }
      }
      break;


    case IDM_EDIT_MOVELINEUP:
      {
        int iCurPos  = SendMessage(hwndEdit,SCI_GETCURRENTPOS,0,0);
        int iCurLine = SendMessage(hwndEdit,SCI_LINEFROMPOSITION,(WPARAM)iCurPos,0);
        int iLinePos = iCurPos - SendMessage(hwndEdit,SCI_POSITIONFROMLINE,(WPARAM)iCurLine,0);
        if (iCurLine > 0) {
          SendMessage(hwndEdit,SCI_BEGINUNDOACTION,0,0);
          SendMessage(hwndEdit,SCI_LINETRANSPOSE,0,0);
          //SendMessage(hwndEdit,SCI_GOTOLINE,(WPARAM)iCurLine-1,0);
          SendMessage(hwndEdit,SCI_GOTOPOS,(WPARAM)SendMessage(hwndEdit,SCI_POSITIONFROMLINE,(WPARAM)iCurLine-1,0)+iLinePos,0);
          SendMessage(hwndEdit,SCI_CHOOSECARETX,0,0);
          SendMessage(hwndEdit,SCI_ENDUNDOACTION,0,0);
        }
      }
      break;


    case IDM_EDIT_MOVELINEDOWN:
      {
        int iCurPos  = SendMessage(hwndEdit,SCI_GETCURRENTPOS,0,0);
        int iCurLine = SendMessage(hwndEdit,SCI_LINEFROMPOSITION,(WPARAM)iCurPos,0);
        int iLinePos = iCurPos - SendMessage(hwndEdit,SCI_POSITIONFROMLINE,(WPARAM)iCurLine,0);
        if (iCurLine < SendMessage(hwndEdit,SCI_GETLINECOUNT,0,0) - 1) {
          SendMessage(hwndEdit,SCI_BEGINUNDOACTION,0,0);
          SendMessage(hwndEdit,SCI_GOTOLINE,(WPARAM)iCurLine+1,0);
          SendMessage(hwndEdit,SCI_LINETRANSPOSE,0,0);
          SendMessage(hwndEdit,SCI_GOTOPOS,(WPARAM)SendMessage(hwndEdit,SCI_POSITIONFROMLINE,(WPARAM)iCurLine+1,0)+iLinePos,0);
          SendMessage(hwndEdit,SCI_CHOOSECARETX,0,0);
          SendMessage(hwndEdit,SCI_ENDUNDOACTION,0,0);
        }
      }
      break;


    case IDM_EDIT_DUPLICATELINE:
      SendMessage(hwndEdit,SCI_LINEDUPLICATE,0,0);
      break;


    case IDM_EDIT_CUTLINE:
   

⌨️ 快捷键说明

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