LRESULT CActiveXWnd::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam, bool &bHandled ) { LRESULT lRes = 0; bHandled = true; switch( uMsg ) { case WM_PAINT: lRes = OnPaint(uMsg, wParam, lParam, bHandled); break; case WM_SETFOCUS: lRes = OnSetFocus(uMsg, wParam, lParam, bHandled); break; case WM_KILLFOCUS: lRes = OnKillFocus(uMsg, wParam, lParam, bHandled); break; case WM_ERASEBKGND: lRes = OnEraseBkgnd(uMsg, wParam, lParam, bHandled); break; case WM_MOUSEACTIVATE: lRes = OnMouseActivate(uMsg, wParam, lParam, bHandled); break; default: bHandled = FALSE; } return lRes; }
LRESULT CActiveXWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lRes=0; BOOL bHandled = TRUE; switch( uMsg ) { case WM_PAINT: lRes = OnPaint(uMsg, wParam, lParam, bHandled); break; case WM_SETFOCUS: lRes = OnSetFocus(uMsg, wParam, lParam, bHandled); break; case WM_KILLFOCUS: lRes = OnKillFocus(uMsg, wParam, lParam, bHandled); break; case WM_ERASEBKGND: lRes = OnEraseBkgnd(uMsg, wParam, lParam, bHandled); break; case WM_MOUSEACTIVATE: lRes = OnMouseActivate(uMsg, wParam, lParam, bHandled); break; case WM_MOUSEWHEEL: break; default: bHandled = FALSE; } if( !bHandled ) return CWindowWnd::HandleMessage(uMsg, wParam, lParam); return lRes; }
bool TextViewBase::HandleWndProc(UINT msg, WPARAM wParam, LPARAM lParam, LONG *pResult) { HIMC hIMC = NULL; switch (msg) { // Draw contents of TextView whenever window needs updating case WM_ERASEBKGND: *pResult = 1; return true; // Need to custom-draw the border for XP/Vista themes case WM_NCPAINT: *pResult = OnNcPaint((HRGN)wParam); return true; case WM_PAINT: *pResult = OnPaint(); return true; // Set a new font case WM_SETFONT: *pResult = OnSetFont((HFONT)wParam); return true; case WM_SIZE: *pResult = OnSize(wParam, LOWORD(lParam), HIWORD(lParam)); return true; case WM_VSCROLL: *pResult = OnVScroll(LOWORD(wParam), HIWORD(wParam)); return true; case WM_HSCROLL: *pResult = OnHScroll(LOWORD(wParam), HIWORD(wParam)); return true; case WM_MOUSEACTIVATE: *pResult = OnMouseActivate((HWND)wParam, LOWORD(lParam), HIWORD(lParam)); return true; //case WM_CONTEXTMENU: // return OnContextMenu((HWND)wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); case WM_MOUSEWHEEL: if (IsKeyPressed(VK_CONTROL)) return false; else *pResult = OnMouseWheel((short)HIWORD(wParam)); return true; case WM_SETFOCUS: *pResult = OnSetFocus((HWND)wParam); return true; case WM_KILLFOCUS: *pResult = OnKillFocus((HWND)wParam); return true; // make sure we get arrow-keys, enter, tab, etc when hosted inside a dialog case WM_GETDLGCODE: *pResult = DLGC_WANTALLKEYS;//DLGC_WANTMESSAGE;//DLGC_WANTARROWS; return true; case WM_LBUTTONDOWN: *pResult = OnLButtonDown(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_LBUTTONUP: *pResult = OnLButtonUp(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_LBUTTONDBLCLK: *pResult = OnLButtonDblClick(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_RBUTTONDOWN: *pResult = OnRButtonDown(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_MOUSEMOVE: *pResult = OnMouseMove(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_KEYDOWN: *pResult = OnKeyDown(wParam, lParam); return true; case WM_UNDO: case TXM_UNDO: case EM_UNDO: *pResult = Undo(); return true; case TXM_REDO : case EM_REDO: *pResult = Redo(); return true; case TXM_CANUNDO: case EM_CANUNDO: *pResult = CanUndo(); return true; case TXM_CANREDO: case EM_CANREDO: *pResult = CanRedo(); return true; case WM_CHAR: OutputDebugString(L"WM_CHAR\n"); *pResult = OnChar(wParam, lParam); return true; case WM_SETCURSOR: if (LOWORD(lParam) == HTCLIENT) { *pResult = TRUE; return true; } else return false; case WM_COPY: *pResult = OnCopy(); return true; case WM_CUT: *pResult = OnCut(); return true; case WM_PASTE: *pResult = OnPaste(); return true; case WM_CLEAR: *pResult = OnClear(); return true; case WM_GETTEXT: *pResult = GetText((WCHAR*)lParam, 0, (ULONG)wParam); return true; case WM_SETTEXT: *pResult = OnSetText((WCHAR*)lParam, lstrlen((WCHAR*)lParam)); return true; //case TXM_SETTEXT: // { // ClearFile(); // EnterText((WCHAR*)lParam, (LONG)wParam); // return 0; // } case WM_TIMER: *pResult = OnTimer(wParam); return true; case WM_IME_STARTCOMPOSITION: OutputDebugString(L"WM_IME_STARTCOMPOSITION\n"); *pResult = OnStartComposition(wParam, lParam); return true; //return DefWindowProc(m_hWnd, WM_IME_STARTCOMPOSITION, wParam, lParam); case WM_IME_COMPOSITION: OutputDebugString(L"WM_IME_COMPOSITION\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_COMPOSITION, wParam, lParam); return true; //return OnComposition(wParam, lParam); case WM_IME_ENDCOMPOSITION: OutputDebugString(L"WM_IME_ENDCOMPOSITION\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_ENDCOMPOSITION, wParam, lParam); return true; //return OnEndComposition(wParam, lParam); case WM_IME_CHAR: OutputDebugString(L"WM_IME_CHAR\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_CHAR, wParam, lParam); return true; case WM_IME_CONTROL: OutputDebugString(L"WM_IME_CONTROL\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_CONTROL, wParam, lParam); return true; case WM_IME_NOTIFY: OutputDebugString(L"WM_IME_NOTIFY\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_NOTIFY, wParam, lParam); return true; //return HandleImeNotify(wParam, lParam); case WM_IME_REQUEST: OutputDebugString(L"WM_IME_REQUEST\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_REQUEST, wParam, lParam); return true; case WM_INPUTLANGCHANGE: *pResult = OnInputLanChange(wParam, lParam); return true; case TXM_PRINT: *pResult = OnPrint((HDC)wParam, (int)lParam); return true; // case TXM_OPENFILE: *pResult = OpenFile((TCHAR *)lParam); return true; case TXM_SAVEFILE: *pResult = SaveFile((TCHAR *)lParam); return true; case TXM_IMPORTFILE: *pResult = ImportFile((TCHAR *)lParam, (int)wParam); return true; case TXM_EXPORTFILE: { int convertype = LOWORD(wParam); int utf_type = HIWORD(wParam); *pResult = ExportFile((TCHAR *)lParam, convertype, utf_type); return true; } case TXM_CLEAR: *pResult = ClearFile(); return true; case TXM_GETFORMAT: *pResult = m_pTextDoc->getformat(); return true; case TXM_SETFORMAT: *pResult = m_pTextDoc->setformat((int)wParam); return true; case TXM_GETSELSIZE: *pResult = SelectionSize(); return true; case TXM_SETSELALL: *pResult = SelectAll(); return true; case TXM_GETCURPOS: *pResult = m_CurrentCharPos.get(); return true; case TXM_GETCURLINE_D: *pResult = m_nCurrentLine_D; return true; case TXM_GETCURLINE_V: *pResult = OnGetCurLineV(); return true; case TXM_GETCURCOL: *pResult = OnGetCurCol(); return true; case TXM_GETEDITMODE: *pResult = m_nEditMode; return true; case TXM_SETEDITMODE: lParam = m_nEditMode; m_nEditMode = wParam; *pResult = lParam; return true; case TXM_FIND_INIT: FindInitial((WCHAR*)lParam); *pResult = 0; return true; case TXM_FIND: { BOOL m = (BOOL)LOWORD(wParam); BOOL b = (BOOL)HIWORD(wParam); //FindText() if (b) *pResult = FindBackward(m, NULL); else *pResult = FindForward(m, NULL); return true; } case TXM_FIND_TEXT: { FIND_OPTION* fp = (FIND_OPTION*)(lParam); *pResult = Find_Text(fp->text, lstrlen(fp->text), fp->fBackward, fp->fMachCase, fp->fWarp); return true; } case TXM_REPLACE_TEXT: { *pResult = Replace_Text((REPLACE_OPTION*)(lParam)); return true; } case TXM_SETRESMODULE: { *pResult = OnSetResModule((HMODULE)lParam); return true; } case WM_GETTEXTLENGTH: case TXM_GETTEXTLEN: { *pResult = OnGetTextLen(); return true; } case TXM_REPLACE: { BOOL ra = (BOOL)LOWORD(wParam); WORD mb = (WORD)HIWORD(wParam); BOOL m = (BOOL)LOBYTE(mb); BOOL b = (BOOL)HIBYTE(mb); if (b) *pResult = FindBackward(m, (WCHAR*)lParam, ra); else *pResult = FindForward(m, (WCHAR*)lParam, ra); return true; } case TXM_FIND_GETTEXTLENGTH: *pResult = m_pFndIterator->find_text_length(); return true; case TXM_GETSELSTART: *pResult = m_nSelectionStart; return true; case TXM_GETSELEND: *pResult = m_nSelectionEnd; return true; case TXM_GETSELTEXT: *pResult = OnGetSelText((WCHAR*)wParam, ULONG(lParam)); return true; case TXM_SETTESTERMODE: OnTesterMode((bool)wParam); *pResult = 0; return true; case TXM_SETCONTEXTMENU: m_hUserMenu = (HMENU)wParam; *pResult = 0; return true; case TXM_STATISTIC: *pResult = OnDoStatistic((STATISTIC*)(lParam)); return true; case TXM_GETCONVERTTYPES: *pResult = OnGetConvertTypes((convert_type*)(lParam)); return true; case EM_GETSEL: *pResult = OnMsg_EM_GETSEL((ULONG*)wParam, (ULONG*)lParam); return true; case EM_SETSEL: *pResult = OnMsg_EM_SETSEL((LONG)wParam, (LONG)lParam); return true; default: return false; } }