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

📄 akeldll.cpp

📁 一个类似于notepad的文本编辑器源代码
💻 CPP
字号:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <richedit.h>
#include "AkelDLL.h"


//Plugin extern function
extern "C" void __declspec(dllexport) GetSelTextTest(PLUGINDATA *pd)
{
  GETTEXTRANGE gtr;
  CHARRANGE cr;
  int nLen;

  //If plugin autoload on start, then exit
  if (pd->bOnStart) return;

  //Get current text selection
  SendMessage(pd->hWndEdit, EM_EXGETSEL, 0, (LPARAM)&cr);
  gtr.cpMin=cr.cpMin;
  gtr.cpMax=cr.cpMax;

  //Get text from selection
  if (nLen=SendMessage(pd->hMainWnd, AKD_GETTEXTRANGE, (WPARAM)pd->hWndEdit, (LPARAM)&gtr))
  {
    //Show result
    if (pd->bOldWindows)
      MessageBox(pd->hMainWnd, (char *)gtr.pText, "Test", MB_OK);
    else
      MessageBoxW(pd->hMainWnd, (wchar_t *)gtr.pText, L"Test", MB_OK);

    //Free text buffer allocated with AKD_GETTEXTRANGE
    SendMessage(pd->hMainWnd, AKD_FREETEXT, 0, (LPARAM)gtr.pText);
  }
  else
  {
    //Show result
    if (pd->bOldWindows)
      MessageBox(pd->hMainWnd, "Text doesn't selected", "Test", MB_OK);
    else
      MessageBoxW(pd->hMainWnd, L"Text doesn't selected", L"Test", MB_OK);
  }
}

//Plugin extern function
extern "C" void __declspec(dllexport) OpenDialogTest(PLUGINDATA *pd)
{
  //If plugin autoload on start, then exit
  if (pd->bOnStart) return;

  SendMessage(pd->hMainWnd, WM_COMMAND, IDM_FILE_OPEN, 0);
}

//Entry point
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
  if (fdwReason == DLL_PROCESS_ATTACH)
  {
  }  
  else if (fdwReason == DLL_THREAD_ATTACH)
  {
  }
  else if (fdwReason == DLL_THREAD_DETACH)
  {
  }
  else if (fdwReason == DLL_PROCESS_DETACH)
  {
  }
  return TRUE;
}

⌨️ 快捷键说明

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