用VC吧,里面有模版
不好意思 没看清楚 你已经调用字体对话框了。。。。
wqwerxser
直接用MFC自动生成实现吧,不过要改一个基类,是改成CEDIT
如果是基于字符界面的话,给你个思路1、整个程序的逻辑是一个循环while(0){捕获键盘输入根据输入确定执行的功能:1、功能操作2、编辑输入或修改操作刷新显示缓冲区的内容}2、键盘输入包括字符、功能键(Fx、del、bk等等)、方向键3、缓冲区是一个动态链表,链表的每个元素是一个字符串,表示是屏幕上一行的内容,可以根据要求限制长度或者调整显示方式
直接用MFC自动生成实现吧,不过要改一个基类,是改成CEDIT
很好
wqwerxser
一个简单的文本编辑器。(是在DEV C++下写的)//头文件//h#define CM_FILE_SAVEAS 9072#define CM_FILE_EXIT 9071#define CM_FILE_OPEN 9070#define CM_ABOUT 9069//主程序文件///*****************************************************/#include #pragma hdrstop#include "Mh"static char g_szClassName[] = "MyWindowClass";static HINSTANCE g_hInst = NULL;#define IDC_MAIN_TEXT 1001BOOL LoadFile(HWND hEdit, LPSTR pszFileName){ HANDLE hFile; BOOL bSuccess = FALSE; hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); if(hFile != INVALID_HANDLE_VALUE) { DWORD dwFileSize; dwFileSize = GetFileSize(hFile, NULL); if(dwFileSize != 0xFFFFFFFF) { LPSTR pszFileText; pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1); if(pszFileText != NULL) { DWORD dwRead; if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL)) { pszFileText[dwFileSize] = 0; // Null terminator if(SetWindowText(hEdit, pszFileText)) bSuccess = TRUE; // It worked! } GlobalFree(pszFileText); } } CloseHandle(hFile); } return bSuccess;}BOOL SaveFile(HWND hEdit, LPSTR pszFileName){ HANDLE hFile; BOOL bSuccess = FALSE; hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); if(hFile != INVALID_HANDLE_VALUE) { DWORD dwTextLength; dwTextLength = GetWindowTextLength(hEdit); if(dwTextLength > 0)// No need to bother if there's no { LPSTR pszText; pszText = (LPSTR)GlobalAlloc(GPTR, dwTextLength + 1); if(pszText != NULL) { if(GetWindowText(hEdit, pszText, dwTextLength + 1)) { DWORD dwWritten; if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL)) bSuccess = TRUE; } GlobalFree(pszText); } } CloseHandle(hFile); } return bSuccess;}BOOL DoFileOpenSave(HWND hwnd, BOOL bSave){ OPENFILENAME ofn; char szFileName[MAX_PATH]; ZeroMemory(&ofn, sizeof(ofn)); szFileName[0] = 0; lStructSize = sizeof(ofn); hwndOwner = hwnd; lpstrFilter = "Text Files (*xt)\0*xt\0All Files (**)\0**\0\0"; lpstrFile = szFileName; MaxFile = MAX_PATH; lpstrDefExt = "txt"; if(bSave) { Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; if(GetSaveFileName(&ofn)) { if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName)) { MessageBox(hwnd, "Save file ", "Error", MB_OK | MB_ICONEXCLAMATION); return FALSE; } } } else { Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; if(GetOpenFileName(&ofn)) { if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName)) { MessageBox(hwnd, "Load of file ", "Error", MB_OK | MB_ICONEXCLAMATION); return FALSE; } } } return TRUE;}LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam){ switch(Message) { case WM_CREATE: CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwnd, (HMENU)IDC_MAIN_TEXT, g_hInst, NULL); SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0)); break; case WM_SIZE: if(wParam != SIZE_MINIMIZED) MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); break; case WM_SETFOCUS: SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT)); break; case WM_COMMAND: switch(LOWORD(wParam)) { case CM_FILE_OPEN: DoFileOpenSave(hwnd, FALSE); break; case CM_FILE_SAVEAS: DoFileOpenSave(hwnd, TRUE); break; case CM_FILE_EXIT: PostMessage(hwnd, WM_CLOSE, 0, 0); break; case CM_ABOUT: MessageBox (NULL, "File Editor for Windows !\n Using the Win32 API" , "A", 0); } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, Message, wParam, lParam); } return 0;}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WNDCLASSEX WndClass; HWND hwnd; MSG Msg; g_hInst = hInstance; WndCbSize = sizeof(WNDCLASSEX); WndCstyle = 0; WndClpfnWndProc = WndProc; WndCbClsExtra = 0; WndCbWndExtra = 0; WndChInstance = g_hInst; WndChIcon = LoadIcon(NULL, IDI_APPLICATION); WndChCursor = LoadCursor(NULL, IDC_ARROW); WndChbrBackground = (HBRUSH)(COLOR_WINDOW+1); WndClpszMenuName = "MAINMENU"; WndClpszClassName = g_szClassName; WndChIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&WndClass)) { MessageBox(0, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL); return 0; } hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, g_szClassName, "A File Program", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 320, 240, NULL, NULL, g_hInst, NULL); if(hwnd == NULL) { MessageBox(0, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL); return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while(GetMessage(&Msg, NULL, 0, 0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return MwParam;}
什么意思啊??是文本控件??
作为it人员,推荐这几款eclipse、netbeans、ultraedit、PNEdit、vim、emacs……根据个人的工作需要选择,若是要界面可视化比较好和快捷功能更多的推荐PNEdit,若是追求易用性强话,建议你用UltraEdit
新闻来源Windows自带的记事本程序由于功能太过单薄,很多用户(包括众多程序员)为了追求工作的高效率直接用其他文本编辑软件来取代之。让我们向你推荐5款最强大的文本编辑软件。卓越的 Notepad++Notepad++ 是一款开源文本编辑软件,拥有众多优秀特性。每天被包括黑客在内的大量用户使用着。NP++是由C++语言写成,可自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,还可显示缩进引导线,代码显示得很有层次感。内置支持多达27 种语法高亮度显示(包括各种常见的源代码、脚本,能够很好地支持fo 文件查看),还支持自定义语言。如果你在寻找一款免费软件来编程或是编辑文本,那没有比Notepad++更合适的了。TextPadTextPad是一款功能非常强大的文本编辑工具,它几乎拥有你所需要的一切功能:多文档操作、拖放支持、文档大小无限制、无限撤消操作、完全支持中文双字节、语法加亮、拼写检查、便易的宏功能、强大的查找替换和正则表达式、丰富的编辑操作、简易的排版功能、独到的字块操作、方便的工作区管理……非常全面的配置选项,所有的控制权都交给你处理,设计的真是太贴心了,甚至可以单独作为一个网页编辑器使用。E Text EditorE Text Editor自称为Windows下的“Textmate” 。Textmate是Mac OS X下非常流行的文本编辑器,并被很多mac 环境下地程序员使用。E Text Editor基本上是“Textmate”在Windows下的克隆版。E Text Editor支持版本控制、有很好的搜索功能、对众多语言都支持语法高亮,并可以被当成windows下的Unix脚本编辑器。E Text Editor目前已经成为开源免费软件,可以自由地下载使用。希望E Text Editor能在开源的路上越走越好。EmEditorEmEditor是一款强大的unicode文本编辑软件。能够处理和打开非常大的文本文件(网站日志之类的大txt文件)。我指的是几G大小的文本文件。不仅仅能打开这么大地文件,还能让用户在其中搜索任意字段。如果你并不需要来打开这么大地文本文件,你不必选择EmEditor,因为EmEditor并没有提供比Notepad++更多的功能。但如果你想打开100MB以上的文件,又不想把文本编辑器弄崩溃时,EmEditor 是你最好的选择。EmEditor是一个共享软件,提供一个免费的试用期,试用期满后你需要花费$99才能继续使用。UltraEdit在我的经验里,UltraEdit如果不是最好的,那也是最接近完美的文本编辑软件。我初次实用UltraEdit时就被其强大的功能所震撼。它可以编辑文本、十六进制、ASCII 码,完全可以取代记事本(如果电脑配置足够强大),内建英文单字检查、C++ 及 VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。软件附有 HTML 标签颜色显示、搜寻替换以及无限制的还原功能,一般用其来修改EXE 或 DLL 文件。是能够满足你一切编辑需要的编辑器。但UltraEdit不是免费的,售价为$95。如果你真的想把windows打造成一个高效的工作平台的话,以上这5款软件正是你所需的。如果你想要的是使用一款免费的文本编辑软件来完成大量的工作,我推荐你使用NotePad++,因为其已经足够强大了。但如果你执着地想要一个“专家级”的程序,UltraEdit是最好的选择。
你好,关于pdf阅读器的排行不是很清楚。用过的只就那么几种,Adobe Reade Foxit Pdf Reader 捷速pdf编辑器 这个是免费的