summaryrefslogtreecommitdiffstats
path: root/doc/Scintilla/Steps.html
diff options
context:
space:
mode:
authorgregory guy <gregory-tde@laposte.net>2021-10-07 15:17:57 +0200
committergregory guy <gregory-tde@laposte.net>2021-11-30 11:04:08 +0100
commita69b55c674b0528c00598bea54b7a661f4e49f27 (patch)
tree93ab3c9c6a8c3be0d8e0da81391904a07f515a57 /doc/Scintilla/Steps.html
parent0896465ce705beabf8562afbabd49f8b92bf3412 (diff)
downloadtqscintilla-a69b55c674b0528c00598bea54b7a661f4e49f27.tar.gz
tqscintilla-a69b55c674b0528c00598bea54b7a661f4e49f27.zip
Conversion to the cmake building system.
Signed-off-by: gregory guy <gregory-tde@laposte.net>
Diffstat (limited to 'doc/Scintilla/Steps.html')
-rw-r--r--doc/Scintilla/Steps.html142
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(&quot;SciLexer.DLL&quot;);
- if (hmod==NULL)
- {
- MessageBox(hwndParent,
- &quot;The Scintilla DLL could not be loaded.&quot;,
- &quot;Error loading Scintilla&quot;,
- 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 &quot;Scintilla&quot; 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,
- &quot;Scintilla&quot;,&quot;&quot;, 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: &quot;Scintilla&quot;. 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 &quot;fn&quot; as the function pointer to the message handling function of the Scintilla Control
- and &quot;ptr&quot; 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-&gt;hwndFrom==hwndScintilla)
- {
- switch(lpnmhdr-&gt;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>
-