用C++写的一个记事本

#include <windows.h>
#include <commdlg.h>
#include <tchar.h>            // for _tcsstr (strstr for Unicode & non-Unicode)

static TCHAR szFindText [512] ;
static TCHAR szReplText [512] ;

HWND EditFindDlg (HWND hWnd)
{
     static FINDREPLACE fr;  // must be static for modeless dialog!!!

     fr.lStructSize      = sizeof (FINDREPLACE) ;
     fr.hwndOwner        = hWnd ;
     fr.hInstance        = NULL ;
     fr.Flags            = FR_HIDEUPDOWN | FR_HIDEWHOLEWORD | FR_HIDEMATCHCASE;
     fr.lpstrFindWhat    = szFindText ;
     fr.lpstrReplaceWith = NULL ;
     fr.wFindWhatLen     = 512 ;
     fr.wReplaceWithLen  = 0 ;
     fr.lCustData        = 0 ;
     fr.lpfnHook         = NULL ;
     fr.lpTemplateName   = NULL ;
     
     return FindText (&fr) ;
}

BOOL EditFindText (HWND hwndEdit, int * piOffset, LPFINDREPLACE lpfr)
{
     int    iLength, iPos ;
     PTSTR  pstrDoc, pstrPos ;
     
     // Read in the edit document
     
     iLength = GetWindowTextLength (hwndEdit) ;
     
     if (NULL == (pstrDoc = (PTSTR) malloc ((iLength + 1) * sizeof (TCHAR))))
          return FALSE ;
     
     GetWindowText (hwndEdit, pstrDoc, iLength + 1) ;
     
     // Search the document for the find string
     
     pstrPos = _tcsstr (pstrDoc + * piOffset, lpfr->lpstrFindWhat) ;
     free (pstrDoc) ;
     
     // Return an error code if the string cannot be found
     
     if (pstrPos == NULL)
          return FALSE ;
     
     // Find the position in the document and the new start offset
     
     iPos = pstrPos - pstrDoc ;
     * piOffset = iPos + lstrlen (lpfr->lpstrFindWhat) ;
     
     // Select the found text
     
     SendMessage (hwndEdit, EM_SETSEL, iPos, * piOffset) ;
     SendMessage (hwndEdit, EM_SCROLLCARET, 0, 0) ;
     
     return TRUE ;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值