dcdd144598 2011-02-23 kinaba: #include "stdafx.h" dcdd144598 2011-02-23 kinaba: #include "ewCtrl1.h" dcdd144598 2011-02-23 kinaba: using namespace ki; dcdd144598 2011-02-23 kinaba: using namespace editwing; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: // EwEditコントロール作成/破棄 dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: EwEdit::ClsName EwEdit::className_ = TEXT("EditWing Control-01"); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: EwEdit::EwEdit() dcdd144598 2011-02-23 kinaba: : WndImpl( className_, WS_CHILD|WS_VISIBLE, WS_EX_CLIENTEDGE ) dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: static bool ClassRegistered = false; dcdd144598 2011-02-23 kinaba: if( !ClassRegistered ) dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: ClassRegistered = true; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: // 初回構築時のみ、クラス登録を行う dcdd144598 2011-02-23 kinaba: WNDCLASSEX wc = {0}; dcdd144598 2011-02-23 kinaba: wc.lpszClassName = className_; dcdd144598 2011-02-23 kinaba: WndImpl::Register( &wc ); dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: EwEdit::~EwEdit() dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: Destroy(); dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: void EwEdit::on_create( CREATESTRUCT* cs ) dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: doc_ = new doc::Document; dcdd144598 2011-02-23 kinaba: view_ = new view::View( *doc_, hwnd() ); dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: void EwEdit::on_destroy() dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: view_ = NULL; dcdd144598 2011-02-23 kinaba: doc_ = NULL; dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: // 簡単なメッセージ制御 dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: LRESULT EwEdit::on_message( UINT msg, WPARAM wp, LPARAM lp ) dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: switch( msg ) dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: case WM_SETFOCUS: dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: view_->SetFocus(); dcdd144598 2011-02-23 kinaba: break; dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: case WM_SIZE: dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: RECT rc; dcdd144598 2011-02-23 kinaba: getClientRect( &rc ); dcdd144598 2011-02-23 kinaba: view_->MoveTo( 0, 0, rc.right, rc.bottom ); dcdd144598 2011-02-23 kinaba: break; dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: case EM_CANUNDO: return getDoc().isUndoAble(); dcdd144598 2011-02-23 kinaba: case EM_SETREADONLY: getCursor().SetROMode(wp!=FALSE); return TRUE; dcdd144598 2011-02-23 kinaba: case WM_COPY: getCursor().Copy(); return 0; dcdd144598 2011-02-23 kinaba: case WM_CUT: getCursor().Cut(); return 0; dcdd144598 2011-02-23 kinaba: case WM_PASTE: getCursor().Paste(); return 0; dcdd144598 2011-02-23 kinaba: case EM_UNDO: dcdd144598 2011-02-23 kinaba: case WM_UNDO: getDoc().Undo(); return TRUE; dcdd144598 2011-02-23 kinaba: default: dcdd144598 2011-02-23 kinaba: return WndImpl::on_message( msg, wp, lp ); dcdd144598 2011-02-23 kinaba: } dcdd144598 2011-02-23 kinaba: return 0; dcdd144598 2011-02-23 kinaba: /* dcdd144598 2011-02-23 kinaba: EM_CHARFROMPOS dcdd144598 2011-02-23 kinaba: EM_EMPTYUNDOBUFFER: dcdd144598 2011-02-23 kinaba: EM_FMTLINES dcdd144598 2011-02-23 kinaba: EM_GETCUEBANNER dcdd144598 2011-02-23 kinaba: EM_GETFIRSTVISIBLELINE dcdd144598 2011-02-23 kinaba: EM_GETHANDLE dcdd144598 2011-02-23 kinaba: EM_GETIMESTATUS dcdd144598 2011-02-23 kinaba: EM_GETLIMITTEXT dcdd144598 2011-02-23 kinaba: EM_GETLINE dcdd144598 2011-02-23 kinaba: EM_GETLINECOUNT dcdd144598 2011-02-23 kinaba: EM_GETMARGINS dcdd144598 2011-02-23 kinaba: EM_GETMODIFY dcdd144598 2011-02-23 kinaba: EM_GETPASSWORDCHAR dcdd144598 2011-02-23 kinaba: EM_GETRECT dcdd144598 2011-02-23 kinaba: EM_GETSEL dcdd144598 2011-02-23 kinaba: EM_GETTHUMB dcdd144598 2011-02-23 kinaba: EM_GETWORDBREAKPROC dcdd144598 2011-02-23 kinaba: EM_HIDEBALLOONTIP dcdd144598 2011-02-23 kinaba: EM_LIMITTEXT dcdd144598 2011-02-23 kinaba: EM_LINEFROMCHAR dcdd144598 2011-02-23 kinaba: EM_LINEINDEX dcdd144598 2011-02-23 kinaba: EM_LINELENGTH dcdd144598 2011-02-23 kinaba: EM_LINESCROLL dcdd144598 2011-02-23 kinaba: EM_POSFROMCHAR dcdd144598 2011-02-23 kinaba: EM_REPLACESEL dcdd144598 2011-02-23 kinaba: EM_SCROLL dcdd144598 2011-02-23 kinaba: EM_SCROLLCARET dcdd144598 2011-02-23 kinaba: EM_SETCUEBANNER dcdd144598 2011-02-23 kinaba: EM_SETHANDLE dcdd144598 2011-02-23 kinaba: EM_SETIMESTATUS dcdd144598 2011-02-23 kinaba: EM_SETLIMITTEXT dcdd144598 2011-02-23 kinaba: EM_SETMARGINS dcdd144598 2011-02-23 kinaba: EM_SETMODIFY dcdd144598 2011-02-23 kinaba: EM_SETPASSWORDCHAR dcdd144598 2011-02-23 kinaba: EM_SETRECT dcdd144598 2011-02-23 kinaba: EM_SETRECTNP dcdd144598 2011-02-23 kinaba: EM_SETSEL dcdd144598 2011-02-23 kinaba: EM_SETTABSTOPS dcdd144598 2011-02-23 kinaba: EM_SETWORDBREAKPROC dcdd144598 2011-02-23 kinaba: EM_SHOWBALLOONTIP dcdd144598 2011-02-23 kinaba: WM_COMMAND dcdd144598 2011-02-23 kinaba: WM_CTLCOLOREDIT dcdd144598 2011-02-23 kinaba: WM_CTLCOLORSTATIC dcdd144598 2011-02-23 kinaba: */ dcdd144598 2011-02-23 kinaba: }