diff options
Diffstat (limited to 'doc/Scintilla/Steps.html')
-rw-r--r-- | doc/Scintilla/Steps.html | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/doc/Scintilla/Steps.html b/doc/Scintilla/Steps.html deleted file mode 100644 index ff88e88..0000000 --- a/doc/Scintilla/Steps.html +++ /dev/null @@ -1,142 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title>How to use the Scintilla Edit Control in windows?</title></head><body bgcolor="#ffffff"> - <p><h2>How to use the Scintilla Edit Control in windows?</h2> - <p> - This should be a little step by step explanation how to use Scintilla in the windows environment. - </p> - </p> - <p><h2>How to create Scintilla Edit Control?</h2> - <p> - First of all, load the Scintilla DLL with something like: - </p> - <pre> - - hmod = LoadLibrary("SciLexer.DLL"); - if (hmod==NULL) - { - MessageBox(hwndParent, - "The Scintilla DLL could not be loaded.", - "Error loading Scintilla", - MB_OK | MB_ICONERROR); - } - </pre> - <p> - If the DLL was loaded successfully, then the DLL has registered (yes, by itself) a new - window class. The new class called "Scintilla" is the new scintilla edit control. - </p> - <p> - Now you can use this new control just like any other windows control. - </p> - <pre> - - hwndScintilla = CreateWindowEx(0, - "Scintilla","", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN, - 10,10,500,400,hwndParent,(HMENU)GuiID, hInstance,NULL); - </pre> - <p> - Note the new window class name: "Scintilla". By reaching this point you actually included - a Scintilla Edit Control to your windows program. - </p> - </p> - <p><h2>How to control the Scintilla Edit Control?</h2> - <p> - You can control Scintilla by sending commands to the Edit Control. - There a 2 ways of doing this. A simple and fast way. - </p> - <p><h3>The simple way to control Scintilla</h3> - <p> - The simple way is just like with any other windows control. You can send messages to the - Scintilla Edit Control and receive notifications from the control. (Note that the notifications - are sent to the parent window of the Scintilla Edit Control.) - </p> - <p> - The Scintilla Edit Control knows a special message for each command. - To send commands to the Scintilla Edit Control you can use the SendMessage function. - </p> - <pre> - - SendMessage(hwndScintilla,sci_command,wparam,lparam); - </pre> - <p> - like: - </p> - <pre> - - SendMessage(hwndScintilla,SCI_CREATEDOCUMENT, 0, 0); - </pre> - <p> - Some of the commands will return a value and unused parameters should be set to NULL. - </p> - </p> - <p><h3>The fast way to control Scintilla</h3> - <p> - The fast way of controlling the Scintilla Edit Control is to call message handling function by yourself. - You can retrieve a pointer to the message handling function of the Scintilla Edit Control and - call it directly to execute a command. This way is much more faster than the SendMessage() way. - </p> - <p> - 1st you have to use the SCI_GETDIRECTFUNCTION and SCI_GETDIRECTPOINTER commands to - retrieve the pointer to the function and a pointer which must be the first parameter when calling the retrieved - function pointer. - You have to do this with the SendMessage way :) - </p> - <p> - The whole thing has to look like this: - </p> - <pre> - - int (*fn)(void*,int,int,int); - void * ptr; - int canundo; - - fn = (int (__cdecl *)(void *,int,int,int))SendMessage( - hwndScintilla,SCI_GETDIRECTFUNCTION,0,0); - ptr = (void *)SendMessage(hwndScintilla,SCI_GETDIRECTPOINTER,0,0); - - canundo = fn(ptr,SCI_CANUNDO,0,0); - </pre> - <p> - with "fn" as the function pointer to the message handling function of the Scintilla Control - and "ptr" as the pointer that must be used as 1st parameter. - The next parameters are the Scintilla Command with its two (optional) parameters. - </p> - - </p> - <p><h3>How will I receive notifications?</h3> - <p> - Whenever an event occurs where Scintilla wants to inform you about something, the Scintilla Edit Control - will send notification to the parent window. This is done by a WM_NOTITY message. - When receiving that message, you have to look in the xxx struct for the actual message. - </p> - <p> - So in Scintillas parent window message handling function you have to include some code like this: - </p> - <pre> - NMHDR *lpnmhdr; - - [...] - - case WM_NOTIFY: - lpnmhdr = (LPNMHDR) lParam; - - if(lpnmhdr->hwndFrom==hwndScintilla) - { - switch(lpnmhdr->code) - { - case SCN_CHARADDED: - /* Hey, Scintilla just told me that a new */ - /* character was added to the Edit Control.*/ - /* Now i do something cool with that char. */ - break; - } - } - break; - </pre> - </p> - </p> - - <p> - <i>Page contributed by Holger Schmidt.</i> - </p> -</body></html> - |