Color Coding (oder Syntax Hilighting) in Textboxen?
-
Hi, ich wollte mal Fragen ob jemand ein Tutorial / Example zu einem Color Coding (S.H) hat. Falls jemand jetzt nicht weis, was ich meine:
Wenn ich z.B. "if" oder "else" in einer Textbox eingebe, soll dieses Wort hervorgehoben (FETT) werden. Ich hoffe ihr könnt mir helfen
€dit: Ich benutze Microsoft Visual C++ 2005 Express
mfg Nolf
-
Ich habe mit eine Etitor geschrieben der der Syntax-Highlighting kann.
http://members.inode.at/anton.zechner/az/index.html
Das Beispiel ist zwar sehr aufwändig aber man kann's schafen:
1.) Kopiere die AZ_Lib nach ./MyProjects/Allgemein
2.) Erstelle die AZ_Lib. (siehe ./MyProjects/AZ_Lib/AZ_Lib.dsw)
3.) Trage die AZ_Editor_C.reg Datei aus Editor_exe.zip in die Registry ein.
3.) Erstelle ein MFC-Programm
4.) Erzeuge die Datei TextWnd.cpp:#include "StdAfx.h" #include "Resource.h" #include "TextDlg.h" #include "TextWnd.h" #define TO_TEXTWND #include "..\Allgemein\ViewBase\TextBase.cpp"
5.) Erzeuge die Datei TextWnd.h:
#if !defined(AFX_TEXTWND_H__82341288_VXDA_1841_9273_144553540000__INCLUDED_) #define AFX_TEXTWND_H__82341288_VXDA_1841_9273_144553540000__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif #include "TextDlg.h" #include "AnsiWnd.h" #define TO_TEXTWND #include "..\Allgemein\ViewBase\TextBase.h" #endif
6.) Erzeuge die Datei AnsiWnd.cpp:
#include "StdAfx.h" #include "AnsiWnd.h" #define TO_ANSIWND #include "..\Allgemein\ViewBase\AnsiBase.cpp"
7.) Erzeuge die Datei AnsiWnd.h:
#if !defined(AFX_ANSIWND_H__15785588_D3DA_1AD1_9273_494553540011__INCLUDED_) #define AFX_ANSIWND_H__15785588_D3DA_1AD1_9273_494553540011__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif #define TO_ANSIWND #include "..\Allgemein\ViewBase\FarbWahlDlg.h" #include "..\Allgemein\ViewBase\AnsiBase.h" #endif
8.) Erzeuge die Datei TextWnd.cpp:
#include "StdAfx.h" #include "TextDlg.h" #include "AfxUtility.h" #include "..\Allgemein\ViewBase\TextDlg.cpp"
9.) Erzeuge die Datei TextWnd.h:
#if !defined(AFX_VIEWDLG_H__81388878_D71A_4A51_9231_CC4553640044__INCLUDED_) #define AFX_VIEWDLG_H__81388878_D71A_4A51_9231_CC4553640044__INCLUDED_ #if _MSC_VER >= 1000 #pragma once #endif #include "..\Allgemein\ViewBase\TextDlg.h" #endif
10.) Füge folgende Dateien in dein Project ein
..\Allgemein\ViewBase\FarbWahlDlg.h
..\Allgemein\ViewBase\FarbWahlDlg.cpp
.\TextDlg.h
.\TextDlg.cpp
.\TextWnd.h
.\TextWnd.cpp
.\AnsiWnd.h
.\AnsiWnd.cpp11.) Füge diese Zeile in StdAfx.h ein:
#include "..\Allgemein\AZ_Lib.h"
12.) Und zum Schluss ein Beispiel wie man das Fenster anzeigt.
CTextWnd *www; // Zeiger auf Fenster in ElerenFensterKlasse anlegen. #define IDC_WND_ID 1234 ... // Beim Erzeugen des Elternfensters das ausführen CRect sRect(10,10,300,500); www = new CTextWnd; www->Create(WS_VISIBLE,sRect,this,IDC_WND_ID); www->MoveWindow(sRect); www->TextInsert("\nif(x==5)\n\t{\n\tint x=0;\n\n\ty++;\n\t}\n",0,10000); www->ConfigLoad("#Software\\AZ\\Editor"); // Registry-Pfad für Formate setzen www->ConfigText(".c"); // Das Syntax-Highlighting auf C-Format www->SetCanModify(FALSE); // Fenster nicht edtitierbar machen
-
Wow, dass is mir eigenltich zu gut, denn ich brauche ja nur die hervorhebung. Trotzdem thx.
Ach ja: Da kommt mir diese Frage, weil bei deinen ganzen Projekten immer steht "afxwin.h" "afx..." no such file or directory - Was soll das? Muss ich da was linken? Und wenn ja: WIE? Wenn ich bei einem Konsolen Projekt #include "windows.h" eingebe, kann der diese Lib nich mal finden. Bei meinem Freund aber geht es?
-
Du wirst ein Windowsforms Projekt eröffnet haben. Die Beispiellib schaut nach MFC aus. Du wirst Dir noch ein SDK downloaden müssen - such mal im Forum, gab es mehrmals andiskutiert teil mit links zum SDK.
-
Ich kann leider keine Passenden Themen dazu finden. Nur das hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.htmlDas dumme ist, warum die LIB windows.h nicht erkannt wird. Ich habe mir nämlich ein Buch über Spiele erstellen (mit C++) gekauft. Der Author arbeitet mit Visual C++ 2003. Da werden die verschiedensten LIBS definiert (windows.h ddraw.h dsound.h usw.) Jetzt komme ich auf der 8. Seite nicht weiter =(. Mit anderen IDE's wirds noch problematischer. Jetzt bin ich nämlich total demotiviert aber ich bleibe hartnäckig. Warum ich demotiviert bin? Von 100 total coolen C++ Source Codes, die ich testen wollte haben vllt nur 2 Stück funktioniert (und das waren eher unwichtige). Deswegen regt mich das auch so auf >_>
-
Dabei hilft es mal zu schauen was Microsoft Visual C++ 2005 Express eigentlich mit bringt: Reine Windowsforms . Du musst Dir für den 2005 EE schon das SDK Downloaden.
-
Problem gelöst. Ich lass es trotzdem stehen.
*Ja gut ich habs gesaugt und installiert aber es kommen Fehler!
momentaner Code: (nur main.cpp)
# include <windows.h> using namespace std; int main() { return 0; }
So würde ich das in Dev-C++ schreiben...
Ich habe bereits eingestellt, das VC++ nach dem SDK "include" Ordner nach den Dateien suchen soll, aber jetzt hat er Probleme mit Dateien die Fehlen. Um genau zu sein: "------ Erstellen gestartet: Projekt: WIN, Konfiguration: Debug Win32 ------
Verknüpfen...
LINK : fatal error LNK1104: Datei "uuid.lib" kann nicht geöffnet werden.
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\USER.USER-B0B86FD03D\Eigene Dateien\Visual Studio 2005\Projects\WIN\WIN\Debug\BuildLog.htm" gespeichert.
WIN - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen =========="*€dit: Musste nur noch was bei den LIBS machen! Jetz gehts. Vielen Dank für eure Hilfe!