Scintilla使用指南 1 簡介

2021-04-18 05:16:07 字數 2552 閱讀 1035

scintilla

是乙個開源的編輯元件,它不僅具有通常的編輯功能,而且還提供了語法樣式、**摺疊、標籤、**自動完成和提示等功能。

windows

版本的scintilla,是乙個標準的windows元件,使用者可以通過sendmessage函式傳送訊息,與其進行互動。sendmessage函式介面如下所示:

lresult

sendmessage(

hwnd

hwnd,

uint msg,

wparam wparam,

lparam lparam

);

gtk+

版本的scintilla,採用和windows版本相似的方式,進行訊息傳遞。下面的介紹,將以windows版本為主。

scintilla

提供了大量的訊息api,每個訊息可以帶有0個、1個或2個引數。sendmessage函式中的訊息,通常帶有2個引數:wparam和lparam,因此對於沒有使用的引數,強烈建議將其設定為0,以保證與將來版本的相容。對於大多數sci_set***xx設定類訊息,都會有乙個對應的sci_get***xx查詢訊息。

訊息中的引數型別,如下表所示:

引數型別

引數說明

bool

0表示false,1表示true

int 32

位有符號整數

const char*

常量字串指標,字串可能以0結尾,或者通過另乙個引數指明長度

char*

字元緩衝區指標,scintilla將會用查詢到的字元資料進行填充。在一些情況下,通過另乙個引數,指明了緩衝區大小;在另一些情況下,你必須保證緩衝區足夠大,可以容納查詢到的字元資料。如果你傳入了乙個空指標0,訊息將返回查詢到的字元資料大小。

colour

rgb格式的顏色值。每種顏色取值0 - 255,red、green、blue按如下方式組合,得到colour值:colour = red | (green << 8) | (blue << 16)。0x000000,黑色;0xff0000,藍色;0x00ff00,綠色;0x0000ff,紅色;0xffffff,白色。

alpha

alpha

通道值,表示顏色的半透明度,取值範圍為:0(完全透明,sc_alpha_transparent)- 255(不透明,sc_alpha_opaque)。值256(c_alpha_noalpha)表示不使用alpha通道。並不是所有平台都支援alpha通道,並且只有一部分訊息實現了alpha效果。訊息預設alpha值為256,不使用alpha通道。

未使用引數,強烈建議將其設定為0,以保證與將來版本的相容。

在scintilla中,使用了如下幾種資料結構:

字元範圍資料結構,與win32資料結構charrange相同。

struct

characterrange ;

文字範圍資料結構,主要用於從scintilla元件獲取指定範圍的文字,與win32資料結構textrange相同。

struct

textrange ;

搜尋文字資料結構,與win32資料結構findtextex相同。

struct

texttofind ;

事件通知資料結構。在windows中,scintilla將向它的父視窗傳送wm_notify訊息;在gtk+中,scintilla將向它的父視窗傳送

notify

訊號。struct

notifyheader ;

struct

scnotification ;

hmodule

m_hmodule

和虛函式

intexitinstance()

,並增加載入dll**和釋放dll**:

::initinstance()

…return true

; };

::exitinstance()

} 然後,在ceasyeditview中,增加wm_paint訊息處理函式void onpaint(),並在bool precreatewindow(createstruct& cs)和void onpaint()函式中增加**:

bool ceasyeditview::

precreatewindow

(createstruct& cs)

void ceasyeditview

::onpaint()

這樣,scintilla控制項就已經整合到view中了。

為了處理scintilla控制項傳送的事件通知,在cchildframe中,增加wm_notify訊息處理函式bool

onnotify(wparam

wparam, lparam

lparam, lresult* presult):

bool cchildframe

::onnotify(wparam

wparam, lparam

lparam, lresult* presult)

return cmdichildwnd::onnotify(wparam, lparam, presult);

}

Scintilla使用指南 1 簡介

scintilla是乙個開源的編輯元件,它不僅具有通常的編輯功能,而且還提供了語法樣式 摺疊 標籤 自動完成和提示等功能。windows版本的scintilla,是乙個標準的windows元件,使用者可以通過sendmessage函式傳送訊息,與其進行互動。sendmessage函式介面如下所示 l...

Scintilla使用指南 3 搜尋和替換

scintilla 提供了搜尋和替換功能,它可以進行普通查詢和正規表示式查詢。scintilla的正規表示式,只提供了很有限的一些基本功能。在進行文字搜尋時,需要設定搜尋標誌 搜尋標誌 說明scfind matchcase 匹配大小寫 scfind wholeword 匹配整個單選 scfind w...

sqlmap詳細使用指南(1)

1.sqlmap update 更新公升級 2.sqlmap u http current user 獲取當前使用者名稱 3.sqlmap u http current db 獲取當前數 據庫名稱 4.sqlmap u http tables d db name 列表名 5.sqlmap u htt...