///////////////////////////////////////////////////////////////////////////// // // COverEditView - 1995 Wolfgang Rolke // // COverEditView erweitert die Klasse CEditView um einen Überschreibmodus. // ///////////////////////////////////////////////////////////////////////////// #ifndef __OVEREDIT_H__ #define __OVEREDIT_H__ ///////////////////////////////////////////////////////////////////////////// class COverEditView : public CEditView { DECLARE_DYNCREATE(COverEditView) protected: // Überschreibmodus global für alle Objekte gleich static BOOL m_bOverwrite; // TRUE, wenn im Überschreibmodus static BOOL m_bOverwriteOld; // Überschreibmodus bei Initialisierung // Konstruktoren public: COverEditView(); // Attribute // Liefert den aktuellen Schreibmodus BOOL GetOverwriteMode() const { return m_bOverwrite; } // Setzt den Schreibmodus BOOL SetOverwriteMode(BOOL bOverwrite = TRUE); // Operationen // Initialisierung und Speicherung des Überschreibmodus static void Initialize(); static void Terminate(); // Liefert den Text zwischen zwei Zeichenpositionen void GetSubText(CString& strSubText, int nStartPos, int nEndPos) const; // Markiert das aktuelle Wort int SelectWord() const; // Ermittelt die Position der Schreibmarke BOOL GetCaretIndex(int& nLine, int& nColumn) const; // Implementation private: // Setzt im Überschreibmodus die korrekte Zeichenmarkierung void CheckSelection(UINT message, WPARAM wParam, LPARAM lParam); protected: virtual WNDPROC* GetSuperWndProcAddr(); // Aktualisiert im Überschreibmodus die Zeichenmarkierung virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam); #ifdef _DEBUG public: virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: //{{AFX_MSG(COverEditView) afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); afx_msg void OnUpdateIndicatorOvr(CCmdUI* pCmdUI); afx_msg LRESULT OnSetOverwrite(WPARAM Overwrite, LPARAM); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// // Befehlsnachricht für den Schreibmodus #define OWM_SETOVERWRITE (WM_USER + 0x1000) ///////////////////////////////////////////////////////////////////////////// // Benachrichtigungen beim Wechsel des Schreibmodus #if !defined(NOPARENTNOTIFY) #define OWN_OVERWRITE 0x1000 #define OWN_INSERT 0x1001 #endif ///////////////////////////////////////////////////////////////////////////// #endif //__OVEREDIT_H__ /////////////////////////////////////////////////////////////////////////////