亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? editex.cxx

?? 串口編程源代碼.rar
?? CXX
字號:
/////////////////////////////////////////////////////////////////////////////
// EditEx.cxx : implementation file - header file is EditEx.hxx
//
// Copyright (C) 1996 Bill Berry All rights reserved.
//
// This class is freely distributable as long as the above copyright 
// accompanies the header and implementaion sources.
//
// Also, please send me any improvements or bug fixes to bberry@javanet.com
//
//
// Modification History:
//
// Bill Berry           November 1996   Created
//                      March 1998      Update
//
// Description:
//
//  Extended CEdit class. Allows easy customization of the following:
//
//      1. COLORREF bkColor( COLORREF crColor )
//         - Sets back ground color of the control
//
//      2. COLORREF bkColor()
//         - Returns back ground color of control
//
//      3. COLORREF textColor( COLORREF crColor )
//         - Sets text or foreground color of the control
//
//      4. COLORREF textColor() const
//         - Returns text (or foreground) color of control
//
//      5. void setCustomMask( CEditMask* editMask /* NULL means default state */ )
//
//      6. void definePopupMenu( UINT uResourceID = 0 /* 0 uses default */ )
//         - Overide default context menu with new menu resource.
//
//      *** Set new font for this control ***
//
//      7. void setFont( const LOGFONT* lpLogFont );
//  
//      8. void setFont( LONG fontHeight      = -8, 
//                       LONG fontWeight      = FW_NORMAL,
//                       UCHAR pitchAndFamily = DEFAULT_PITCH | FF_DONTCARE,
//                       LPCSTR faceName      = _T("MS Sans Serif"          
//                     );
//
// Remarks:
//
//      When using the CEditEx control do not free the CEditMask pointer
//      assigned by the setCustomMask call. This class will free it for 
//      you once it leaves scope.
//
#include "stdafx.h"
#include "LogFont.hxx"
#include "EditEx.hxx"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEditEx
IMPLEMENT_DYNCREATE(CEditEx, CEdit)

BEGIN_MESSAGE_MAP(CEditEx, CEdit)
    //{{AFX_MSG_MAP(CEditEx)
    ON_WM_CHAR()
    ON_WM_CONTEXTMENU()
    //}}AFX_MSG_MAP
    ON_WM_CTLCOLOR_REFLECT()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Public Interfaces:
//

// Construction:
//
//** CEditEx::CEditEx()
//
CEditEx::CEditEx() : m_pCFont(0)
{
    // Use default popup menu
    //
    m_MenuResourceID = 0;

    // Use system colors for defaults
    //
    m_crTextColor = ::GetSysColor( COLOR_WINDOWTEXT );
    m_crBkColor   = ::GetSysColor( COLOR_WINDOW     );

    // The default brush type: SOLID
    //
    CreateBrushType();

    // Edit mask is null
    //
    m_pEditMask = 0;
}

//** CEditEx::~CEditEx()
//
CEditEx::~CEditEx()
{
    if ( m_pCFont    ) delete m_pCFont; 
    if ( m_pEditMask ) delete m_pEditMask;
}

// Note: Copy construction is blocked for this class.
//       This is because there would be no defined
//       m_hWnd during the construction of the object.
//
// CEditEx::CEditEx( const CEditEx& o )
//

// Allow = operator to be used for copying basics.
//
CEditEx& CEditEx::operator = ( const CEditEx& o )
{

    _ASSERT( o != *this ); // You probably did not mean to do this...

    if ( o == *this ) return *this; // copying self...
    
    bkColor( o.m_crBkColor );
    textColor( o.m_crTextColor );

    if ( o.m_pCFont ) {
         CLogFont pLogFont;
         o.m_pCFont->GetLogFont( &pLogFont );
         setFont( &pLogFont );
    }

    return *this;
}
//** void SetFont( const LOGFONT* lpLogFont )
//

void CEditEx::setFont( const LOGFONT* lpLogFont )
{
    _ASSERT( lpLogFont ); // logfont is not defined!!!

    if ( !lpLogFont ) return;

    if ( m_pCFont ) delete m_pCFont;
    
    m_pCFont = new CFont;
    m_pCFont->CreateFontIndirect( lpLogFont );

    SetFont( m_pCFont );
}

void CEditEx::setFont( LONG fontHeight      /* = -8                         */, 
                       LONG fontWeight      /* = FW_NORMAL                  */,
                       UCHAR pitchAndFamily /* = DEFAULT_PITCH | FF_DONTCARE*/,
                       LPCSTR faceName      /* = _T("MS Sans Serif")        */ )
{
    if ( m_pCFont ) 
    {
        delete m_pCFont;
    }
    m_pCFont = new CFont;

    const CLogFont lf( fontHeight, 
                       FW_NORMAL,
                       pitchAndFamily,
                       faceName
                     );

    m_pCFont->CreateFontIndirect( &lf );

    SetFont( m_pCFont );
}

//** COLORREF CEditEx::bkColor( COLORREF crColor )
//
COLORREF CEditEx::bkColor( COLORREF crColor )
{
    _ASSERT(::IsWindow(m_hWnd)); 

    COLORREF crPrevBkColor = m_crBkColor;

    m_crBkColor = crColor;
    
    m_brBkGround.DeleteObject();

    CreateBrushType();

    Invalidate();

    return crPrevBkColor;
}

//** COLORREF CEditEx::textColor( COLORREF crColor )
//
COLORREF CEditEx::textColor( COLORREF crColor )
{
    _ASSERT(::IsWindow(m_hWnd)); 
    
    COLORREF crPrevTextColor = m_crTextColor;
    
    m_crTextColor = crColor;
    
    Invalidate();
    
    return crPrevTextColor;
}

/////////////////////////////////////////////////////////////////////////////
// Protected and private interfaces:

//
//** BOOL CEditEx::CreateBrushType()
//
BOOL CEditEx::CreateBrushType()
{
    return m_brBkGround.CreateSolidBrush( m_crBkColor );
}

//** void CEditEx::OnContextMenu(CWnd* pWnd, CPoint point) 
//
void CEditEx::OnContextMenu(CWnd* pWnd, CPoint point) 
{
    // Use default popup
    //
    if ( !m_MenuResourceID ) {
         CEdit::OnContextMenu( pWnd, point );
         return;
    }
    
    // Replace default popup menu
    //
    CMenu menu;
    
    if ( !menu.LoadMenu( m_MenuResourceID ) ) {
         CEdit::OnContextMenu( pWnd, point);
    }
    else {
         CMenu* pContext = menu.GetSubMenu(0);
         pContext->TrackPopupMenu( TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, this );
    }
}

//** void CEditEx::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
//
void CEditEx::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    if ( 0 == m_pEditMask ) {
         CEdit::OnChar(nChar, nRepCnt, nFlags);
         return;
    }

    // else Use custom mask...
    //
    if ( m_pEditMask->AddChar( nChar ) )
         CEdit::OnChar(nChar, nRepCnt, nFlags);
    else
         MessageBeep(0);
}

//** HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor) 
//
HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor) 
{
    pDC->SetTextColor( m_crTextColor );
    pDC->SetBkColor( m_crBkColor );
    return (HBRUSH)m_brBkGround;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文一区二区| 色又黄又爽网站www久久| 国产在线精品视频| 99视频精品全部免费在线| 欧美日韩国产小视频| 欧美韩日一区二区三区| 免费观看在线综合色| 99久久国产综合精品女不卡| 精品国产一区二区国模嫣然| 亚洲午夜精品一区二区三区他趣| 国产91清纯白嫩初高中在线观看| 欧美日韩久久久一区| 亚洲欧洲精品一区二区三区不卡 | 亚洲mv在线观看| 懂色av一区二区三区蜜臀| a在线播放不卡| 亚洲综合视频网| 久色婷婷小香蕉久久| 成人午夜大片免费观看| 日韩一区二区在线观看| 一区二区三区成人| 99久久伊人久久99| 久久影音资源网| 日本女优在线视频一区二区| 欧美亚洲自拍偷拍| 亚洲精品精品亚洲| 91一区一区三区| 欧美激情中文字幕| 国产精品18久久久久久久网站| 911国产精品| 午夜影视日本亚洲欧洲精品| 精品一区二区在线观看| 国产欧美精品日韩区二区麻豆天美| 亚洲资源中文字幕| 91视频.com| 亚洲色图视频免费播放| 99久久婷婷国产精品综合| 亚洲丝袜自拍清纯另类| 91在线国内视频| 亚洲日本护士毛茸茸| 91影视在线播放| 亚洲人成小说网站色在线 | 国产精品综合一区二区三区| 日韩欧美中文字幕制服| 久久99精品视频| 精品88久久久久88久久久| 精品亚洲成a人在线观看| 久久久蜜桃精品| 国产福利不卡视频| 成人免费一区二区三区视频| 色综合久久88色综合天天6| 一二三四区精品视频| 欧美精品日韩精品| 国产一区视频网站| 国产精品久久久久影视| 欧美羞羞免费网站| 毛片av中文字幕一区二区| 国产三级精品三级| 色成年激情久久综合| 五月天久久比比资源色| 精品国产凹凸成av人网站| 99久久综合99久久综合网站| 亚洲a一区二区| 欧美成人综合网站| 91最新地址在线播放| 丝袜脚交一区二区| 国产无人区一区二区三区| 色欲综合视频天天天| 日韩av不卡一区二区| 中文字幕av不卡| 欧美三级视频在线| 国产不卡视频一区| 亚洲成av人片在线| 亚洲高清在线视频| 久久免费美女视频| 欧美三级韩国三级日本三斤| 国产乱码精品一区二区三区av | 亚洲欧洲99久久| 3atv在线一区二区三区| www.一区二区| 美女高潮久久久| 一区二区三区在线观看国产| 久久女同性恋中文字幕| 欧美人与z0zoxxxx视频| 成人国产视频在线观看| 久久黄色级2电影| 亚洲猫色日本管| 久久精品这里都是精品| 9191成人精品久久| 一本久道中文字幕精品亚洲嫩| 精品无码三级在线观看视频| 亚洲国产精品一区二区久久 | 欧美一级高清片| 91麻豆精品秘密| 国产成人亚洲精品狼色在线 | 最好看的中文字幕久久| www亚洲一区| 8x福利精品第一导航| 在线观看国产一区二区| 成人av先锋影音| 国产福利不卡视频| 国内精品伊人久久久久av影院| 日韩一区精品视频| 午夜不卡在线视频| 亚洲国产视频一区二区| 一区二区三区视频在线看| 亚洲成人一区在线| 一区二区三区中文免费| 国产日产精品1区| 久久蜜桃一区二区| 精品99一区二区三区| 91精品国产综合久久精品 | 自拍偷拍欧美激情| 国产色婷婷亚洲99精品小说| 亚洲精品一区二区三区香蕉| 欧美不卡一区二区| 日韩欧美国产小视频| 日韩免费观看高清完整版在线观看| 欧美日韩免费在线视频| 欧美酷刑日本凌虐凌虐| 欧美高清hd18日本| 欧美一区二区三区公司| 日韩三区在线观看| 欧美不卡一区二区| 久久人人爽爽爽人久久久| 久久久91精品国产一区二区三区| 久久综合一区二区| 欧美国产一区视频在线观看| 国产精品麻豆视频| 亚洲人成在线观看一区二区| 亚洲一区二区在线视频| 丝袜脚交一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 国产老妇另类xxxxx| 成人一区二区三区中文字幕| 99视频超级精品| 欧美日韩视频一区二区| 欧美一区二区在线观看| 久久夜色精品国产噜噜av| 国产精品久久综合| 亚洲小少妇裸体bbw| 另类专区欧美蜜桃臀第一页| 国产酒店精品激情| 99久久99久久免费精品蜜臀| 欧美三级韩国三级日本三斤| 精品理论电影在线观看 | 日韩免费福利电影在线观看| 精品久久久久av影院| 国产精品成人一区二区艾草| 亚洲综合在线免费观看| 精品一区二区免费视频| 99热这里都是精品| 日韩欧美国产系列| 亚洲欧洲精品成人久久奇米网| 亚洲妇女屁股眼交7| 国产精品一级在线| 中文字幕日韩精品一区| 亚洲第一搞黄网站| 国产suv精品一区二区883| 欧美日韩一本到| 久久精品视频一区二区三区| 亚洲福利视频导航| 国产成人精品免费在线| 欧美日韩中文另类| 国产精品女同一区二区三区| 日韩精品成人一区二区在线| 成人av网站免费| 欧美va亚洲va国产综合| 亚洲综合久久久| 国产91在线看| 欧美一级理论性理论a| 一区二区三区在线观看欧美| 国产激情一区二区三区桃花岛亚洲| 欧美区一区二区三区| 亚洲人成小说网站色在线| 国产一区二区导航在线播放| 欧美日韩国产片| 亚洲精品视频一区二区| 国产+成+人+亚洲欧洲自线| 欧美一级片在线| 亚洲午夜在线电影| 成人99免费视频| 精品av久久707| 卡一卡二国产精品 | 精品少妇一区二区三区在线视频| 亚洲精品久久久蜜桃| 高清在线观看日韩| 精品国精品自拍自在线| 首页国产丝袜综合| 欧美亚洲自拍偷拍| 亚洲视频免费看| 成人午夜视频在线| 国产情人综合久久777777| 国精产品一区一区三区mba视频| 欧美一区在线视频| 日韩精品1区2区3区| 欧美丰满美乳xxx高潮www| 亚洲国产毛片aaaaa无费看| 欧美精品一区二区久久久| 免费人成在线不卡|