Éste es un bloc de notas sencillo, pero con las funcionalidades esenciales. Perdonen si hay errores o si el código no está completamente optimizado, pues no programo mucho en este lenguaje.
Espero sirva de base o mejor dicho de ejemplo.

Programado en: Borland C++ Builder
Descargar: Box.net – Notepad(C++).rar
Código:
Código
//---------------------------------------------------------------------------// //---------------------------------------------------------------------------// //-------------------- Notepad(C++) by DaW - Labs ----------------------// //---------------------------------------------------------------------------// // Éste es un bloc de notas programado en C++ Builder. // Si deseas compartirlo o mejorarlo puedes hacerlo, pero respeta la // fuente y el autor del mismo. // Desarrollado por DaW - Labs® //--------------------------------------------------------------------------// #include <vcl.h> #include <clipbrd.hpp> #pragma hdrstop #include "uMain.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; UnicodeString FileName; const UnicodeString Espacio = " - "; UnicodeString App = "Notepad (C++) "; UnicodeString NuevoTexto = "Sin_título.txt"; //--------------------------------------------------------------------------- __fastcall TfrmMain::TfrmMain(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormCreate(TObject *Sender) { MemoEditor->Align = alClient; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::Abrir1Click(TObject *Sender) { if (OpenDialog->Execute() == True) { { FileName = OpenDialog->FileName; MemoEditor->Lines->LoadFromFile(FileName); Caption = ExtractFileName(FileName)+Espacio+App; MemoEditor->Modified = False; } } } //--------------------------------------------------------------------------- void __fastcall TfrmMain::Guardar1Click(TObject *Sender) { if (FileName == "") { if (SaveDialog->Execute()) { FileName = SaveDialog->FileName; MemoEditor->Lines->SaveToFile(FileName); Caption = ExtractFileName(FileName)+Espacio+App; MemoEditor->Modified = False; } } else { MemoEditor->Lines->SaveToFile(FileName); Caption = ExtractFileName(FileName)+Espacio+App; MemoEditor->Modified = False; } } //--------------------------------------------------------------------------- void __fastcall TfrmMain::Nuevo1Click(TObject *Sender) { if (MemoEditor->Modified == False) { MemoEditor->Clear(); FileName = ""; MemoEditor->Modified = False; Caption = NuevoTexto+Espacio+App; } else { switch (MessageBox(Handle,"¿Desea guardar los cambios?","Información", MB_YESNO | MB_ICONQUESTION)) { case IDYES: Guardar1Click(Sender); break; case IDNO: MemoEditor->Clear(); FileName = ""; MemoEditor->Modified = False; Caption = NuevoTexto+Espacio+App; break; } } } //--------------------------------------------------------------------------- void __fastcall TfrmMain::Guardarcomo1Click(TObject *Sender) { if (SaveDialog->Execute()) { FileName = SaveDialog->FileName; MemoEditor->Lines->SaveToFile(FileName); Caption = ExtractFileName(FileName)+Espacio+App; MemoEditor->Modified = False; } } //--------------------------------------------------------------------------- void __fastcall TfrmMain::Salir1Click(TObject *Sender) { Application->Terminate(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditCut1Execute(TObject *Sender) { MemoEditor->CutToClipboard(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditCopy1Execute(TObject *Sender) { MemoEditor->CopyToClipboard(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditPaste1Execute(TObject *Sender) { MemoEditor->PasteFromClipboard(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditSelectAll1Execute(TObject *Sender) { MemoEditor->SelectAll(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditUndo1Execute(TObject *Sender) { MemoEditor->Undo(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditDelete1Execute(TObject *Sender) { MemoEditor->ClearSelection(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditCopy1Update(TObject *Sender) { EditCopy1->Enabled = MemoEditor->SelLength > 0; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditPaste1Update(TObject *Sender) { EditPaste1->Enabled = Clipboard()->HasFormat(CF_TEXT); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::EditUndo1Update(TObject *Sender) { EditUndo1->Enabled = MemoEditor->CanUndo; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FuenteClick(TObject *Sender) { FontDialog->Font->Assign(MemoEditor->Font); if (FontDialog->Execute()) { MemoEditor->Font->Assign(FontDialog->Font); } } //---------------------------------------------------------------------------
Respeten la fuente y el autor (DaW - Labs).