摘自Scintilla文檔
一.如何在窗口中建立Scintilla編輯控件
1. 載入動(dòng)態(tài)鏈接庫(kù)
1
hmod = LoadLibrary("SciLexer.DLL");
2
if (hmod==NULL)
3

{
4
MessageBox(hwndParent,
5
"The Scintilla DLL could not be loaded.",
6
"Error loading Scintilla",
7
MB_OK | MB_ICONERROR);
8
}
9
2. 創(chuàng)建窗口(已經(jīng)注冊(cè))
hwndScintilla = CreateWindowEx(0,
"Scintilla","", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN,
10,10,500,400,hwndParent,(HMENU)GuiID, hInstance,NULL);

二.如何控制窗口類(lèi)控件
方法一:給控件發(fā)送消息和接受來(lái)自控件的響應(yīng)
SendMessage(hwndScintilla,sci_command,wparam,lparam);
方法二:首先通過(guò)SCI_GETDIRECTFUNCTION 和 SCI_GETDIRECTPOINTER消息獲取編輯控件回調(diào)函數(shù)的指針和第一個(gè)參數(shù),接下來(lái)就可以直接使用編輯控件的消息處理函數(shù)了。
int (*fn)(void*,int,int,int);
void * ptr;
fn = (int (__cdecl *)(void *,int,int,int))SendMessage(hwndScintilla,SCI_GETDIRECTFUNCTION,0,0);
ptr = (void *)SendMessage(hwndScintilla,SCI_GETDIRECTPOINTER,0,0);

然后使用該回調(diào)函數(shù):
fn(ptr,sci_command,wparam,lparam);
三.如何接受響應(yīng)
只要在父窗口消息處理函數(shù)中對(duì)WM_NOTIFY消息做相應(yīng)處理
NMHDR *lpnmhdr;
[
]
case WM_NOTIFY:
lpnmhdr = (LPNMHDR) lParam;
if(lpnmhdr->hwndFrom==hwndScintilla)


{
switch(lpnmhdr->code)


{
case SCN_CHARADDED:
[…]
break;
}}
break;

整個(gè)過(guò)程沒(méi)有任何問(wèn)題,做好后是這個(gè)樣子的Download。
此時(shí)你會(huì)發(fā)現(xiàn)該控件你沒(méi)有發(fā)送任何消息就已經(jīng)具備了一定的功能,有redo undo操作,還有復(fù)制黏貼。