一些功能的實現:
( 1 ) 添加 文件打開對話框:
在自己的view 類中處理菜單的打開消息:
並在CScintillaWnd 類中添加 BOOL OpenFile ( LPCTSTR lpFileName ); 函數
(這個方法比較笨,可以直接使用MFC 提供的串行化支持來實現,可以參考我的程序)
( 2 ) 複製、粘貼、剪切、undo 操作
在view 類中爲相應菜單添加事件處理函數,代碼類似:
m_wndScintilla . SendMessage ( SCI_PASTE ,0,0);
( 3 ) 跳轉到某一行(對話框)
新建一個對話框資源,
將該對話框關聯一個類 CJumpToLine
在View 類中,設置一個 CJumpToLine 對象指針,並在 view 類的 OnCreate 函數中初始化,在析構中銷燬。這樣,在點擊菜單項時,創建 CJumpToLine 窗口,傳遞給它當前文本的總長度。當點擊 JumpToLine 對話框的確定按鈕後,發送消息給 view 類,由 OnDlgNotifyMsg 函數處理(對話框與父窗口間的消息傳遞)
( 4 )使用自定義的右鍵彈出菜單
在 CScintillaWnd中對其右鍵單擊消息進行響應
查找和替換對話框是調用view 類的
( 5 )狀態欄顯示當前行號列號
在資源的StringTable 中增加一個 IDS_POS ,將其加入 MainFrame 的 static UINT indicators[] 變量中,自己注意位置
修改view 類:在消息映射中添加
ON_UPDATE_COMMAND_UI(IDS_POS, OnUpdateLine)
聲明並添加函數(注意怎樣獲得狀態欄的指針)也可直接在該函數中用 pCmdUI->SetText(str); 更改顯示
要修改顯示時的大小,去MainFrm 中的 OnCreate ,
m_wndStatusBar . SetPaneWidth (2,40);
參數爲 indicators 中的序號,和 要設置的寬度