/* * CiderPress * Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved. * See the file LICENSE for distribution terms. */ /* * Support for MyEdit class. */ #include "StdAfx.h" #include "MyEdit.h" //BEGIN_MESSAGE_MAP(MyBitmapButton, CButton) // ON_WM_SYSCOLORCHANGE() //END_MESSAGE_MAP() /* * Replace an edit control in a dialog with ourselves. * * Returns TRUE on success, FALSE on failure. */ BOOL MyEdit::ReplaceDlgCtrl(CDialog* pDialog, int editID) { CWnd* pWnd = pDialog->GetDlgItem(editID); if (pWnd == NULL) return FALSE; /* latch on to their window handle */ Attach(pWnd->m_hWnd); return TRUE; } /* * Set the properties that make us special. */ void MyEdit::SetProperties(int props) { fCapsOnly = (props & kCapsOnly) != 0; fHexOnly = (props & kHexOnly) != 0; fNoWhiteSpace = (props & kNoWhiteSpace) != 0; } /* * Special keypress handling. */ BOOL MyEdit::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_CHAR) { if (fCapsOnly) pMsg->wParam = toupper(pMsg->wParam); if (fNoWhiteSpace) { if (pMsg->wParam == ' ' || pMsg->wParam == '\t') return TRUE; // we handled it } if (fHexOnly) { if ((pMsg->wParam >= '0' && pMsg->wParam <= '9') || (pMsg->wParam >= 'a' && pMsg->wParam <= 'f') || (pMsg->wParam >= 'A' && pMsg->wParam <= 'F')) { /* good, keep going */ } else if ((pMsg->wParam >= 0x20 && pMsg->wParam < 0x7f) || (pMsg->wParam >= 0xa0 && pMsg->wParam <= 0xff)) { /* ignore this character */ return TRUE; // we handled it } /* else it's a backspace or DEL or something */ } } return CEdit::PreTranslateMessage(pMsg); }