资源简介
使用纯win32API模仿Windows记事本开发的一个小程序,实现了记事本的所有功能,BUG基本不存在了,完善的还是比较可以的
代码片段和文件信息
#include “EditMenu.h“
#include “stdafx.h“
int GetStrLength(CString Str)
{
int Num LineLength;
char *pChar;
Num = WideCharToMultiByte(CP_ACP 0 Str -1 NULL 0 NULL 0);
pChar = new char[Num * sizeof(char)];
if(pChar == NULL)
{
return FALSE;
}
memset(pChar 0 Num * sizeof(char));
WideCharToMultiByte(CP_ACP 0 Str -1 pChar Num NULL 0);
LineLength = strlen(pChar);
delete pChar;
return LineLength;
}
// 将过长的一行文本拆成多行
BOOL LineStor(vector &StrInfo int CXBuffer int CXChar HWND hWnd HFONT HFont)
{
TextStr Tmp;
HDC hDC = GetDC(hWnd);
SIZE ShowLength;
Selectobject(hDC HFont);
int MAX = CXBuffer * CXChar;
if(StrInfo.size() <= 0)
{
return FALSE;
}
for(vector::iterator It = StrInfo.begin(); It != StrInfo.end(); It++)
{
BOOL NextOne = FALSE;
while(It != StrInfo.end() && It->Str.GetLength() == 0 && StrInfo.size() != 1)
{
It = StrInfo.erase(It);
}
if(It == StrInfo.end())
{
break;
}
if(It->Str.Find(_T(“\n“)) >= 0)
{
if(It->Newline == TRUE)
{
It->Str = It->Str + _T(“\n“);
It->Newline = FALSE;
}
while(It->Str.Find(_T(“\n“)) >= 0)
{
int NEnd = It->Str.Find(_T(“\n“));
if(NEnd == It->Str.GetLength() - 1)
{
It->Newline = TRUE;
It->Str.Delete(NEnd 1);
}
else
{
Tmp.Str = It->Str.Left(NEnd);
Tmp.Newline = TRUE;
It->Str.Delete(0 NEnd + 1);
It = StrInfo.insert(It Tmp);
}
}
}
GetTextExtentPoint32(hDC It->Str It->Str.GetLength() &ShowLength);
if(GetStrLength(It->Str) > CXBuffer && It->Newline == TRUE)
{
int NowLength = 0;
for(int i = 0; i < It->Str.GetLength(); i++)
{
if(It->Str[i] > 127)
{
NowLength += 2;
}
else
{
NowLength++;
}
if(NowLength >= CXBuffer)
{
GetTextExtentPoint32(hDC It->Str i &ShowLength);
int TrueLength = ShowLength.cx;
while(TrueLength > MAX)
{
GetTextExtentPoint32(hDC It->Str --i &ShowLength);
TrueLength = ShowLength.cx;
}
Tmp.Newline = FALSE;
Tmp.Str = It->Str.Left(i);
It->Str.Delete(0 i);
It = StrInfo.insert(It Tmp);
NextOne = TRUE;
break;
}
}
}
else if(GetStrLength(It->Str) > CXBuffer && It->Newline == FALSE)
{
int NowLength = 0;
for(int i = 0; i < It->Str.GetLength(); i++)
{
if(It->Str[i] > 127)
{
NowLength += 2;
}
else
{
NowLength++;
}
if(NowLength >= CXBuffer)
{
GetTextExtentPoint32(hDC It->Str i &ShowLength);
int TrueLength = ShowLength.cx;
while(TrueLength > MAX)
{
GetTextExtentPoint32(hDC It->Str --i &ShowLength);
TrueLength = ShowLength.cx;
}
Tmp.Newline = FALSE;
Tmp.Str = It->Str.Left(i);
It->Str.Delete(0 i);
It = StrInfo.insert(It Tmp);
if(It + 2 != S
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 964 2017-06-23 09:00 MyEdit.sln
文件 18837 2017-08-01 10:26 MyEdit\EditMenu.cpp
文件 898 2017-07-27 13:09 MyEdit\EditMenu.h
文件 7367 2017-07-31 16:11 MyEdit\FileMenu.cpp
文件 464 2017-07-31 16:08 MyEdit\FileMenu.h
文件 10796 2017-07-14 16:40 MyEdit\MyEdit.aps
文件 61610 2017-08-01 14:56 MyEdit\MyEdit.cpp
文件 39 2017-06-22 12:57 MyEdit\MyEdit.h
文件 2998 2013-07-22 01:18 MyEdit\MyEdit.ico
文件 8954 2017-07-14 16:40 MyEdit\MyEdit.rc
文件 5126 2017-07-19 09:12 MyEdit\MyEdit.vcxproj
文件 2279 2017-07-19 09:06 MyEdit\MyEdit.vcxproj.filters
文件 165 2017-06-29 14:55 MyEdit\MyEdit.vcxproj.user
文件 750 2017-06-30 15:39 MyEdit\MyPhoto.ico
文件 2244 2017-06-22 12:57 MyEdit\ReadMe.txt
文件 1707 2017-07-31 15:15 MyEdit\Resource.h
文件 2998 2013-07-22 01:18 MyEdit\small.ico
文件 1106 2017-07-19 16:57 MyEdit\stdafx.cpp
文件 1385 2017-07-31 15:48 MyEdit\stdafx.h
文件 236 2017-06-22 12:57 MyEdit\targetver.h
目录 0 2017-08-01 14:56 MyEdit
----------- --------- ---------- ----- ----
130923 21
相关资源
- eetop.cn_eetop.cn_hfss15_win32crack
- nginx-rtmp-win32-master.rar
- sunxi-tools-win32-support_f1c100s_32M(32M fl
- ipscan-win32
- ffplay_win32
- cmake-3.7.0-win32-x86.zip官方绿色包
- ffmpeg-3.2-win32-shared.zip
- windows32位系统的ffmpeg
- ffmpeg-2.5.2-win32-shared
- OpenCC-1.0.5-Win32
- Notepad++的Json格式化插件win32和x64两版
- Eclipse64位4.3开普勒版eclipse-standard-ke
- award_bios_editor1.2_win32.zip
- Eclipse64位4.3.2开普勒版eclipse-jee-keple
- ninja(windows 32/64位)
- ffmpeg-4.2.1-win32-dev.zip
- eWebeditor 修正版 (解决在IE9-IE11 Chro
- Eclipse64位4.3开普勒版eclipse-jee-kepler-
- Eclipse32位4.3开普勒版eclipse-standard-ke
- pywin32-225-cp38-cp38-win_amd64.whl
- mac专用textwrangler文本编辑器
- openssl-0.9.8k_WIN32.rar
- chromedriver_win32适用于 72.0.3626.119正式版
- 操作系统程序 WIN32API 进程的控制通信
- Pywin32-222.win-amd64-py3.7
- TimeControl定时提醒小工具源码
- protoc-3.4.0-win32
- 代码编辑器(支持自动缩进,语法高
- 3DxWare-SDK_v2-0-4_win32
- win32下的简单打字游戏
评论
共有 条评论