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

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

?? gridcellbase.cpp

?? 一種簡單的股票軟件源代碼,編譯后可以實時顯示證券行情
?? CPP
字號:
// GridCellBase.cpp: implementation of the CGridCellBase class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#include "GridCtrl.h"
#include "GridCellBase.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNAMIC(CGridCellBase, CObject)
CGridCellBase::CGridCellBase()
{
m_nState=0;//如果不對它初始化,非固定的單元格背景色會不對

}

CGridCellBase::~CGridCellBase()
{

}
BOOL CGridCellBase::Draw(CDC* pDC,int nRow,int nCol,CRect rect,BOOL bEraseBkgng/*=TRUE*/)
{
    CGridCtrl* pGrid = GetGrid();
    ASSERT(pGrid);

    if (!pGrid ||!pDC)
        return FALSE;

    if( rect.Width() <= 0 || rect.Height() <= 0)  // prevents imagelist item from drawing even
        return FALSE;                             //  though cell is hidden

    TRACE3("Drawing %scell %d, %d\n", IsFixed()? _T("Fixed ") : _T(""), nRow, nCol);

    int nSavedDC = pDC->SaveDC();
    pDC->SetBkMode(TRANSPARENT);//背景透明模式

	CGridDefaultCell *pDefaultCell = (CGridDefaultCell*) GetDefaultCell();//得到卻省得單元格設置
    if (!pDefaultCell)
        return FALSE;

	// Set up text and background colours
    COLORREF TextClr, TextBkClr;//文本色和文本背景色

	TextClr = (GetTextClr() == CLR_DEFAULT)? pDefaultCell->GetTextClr() : GetTextClr();//取得顏色
    if (GetBackClr() == CLR_DEFAULT)//CLR_DEFAULT是Windows卻省的背景顏色
        TextBkClr = pDefaultCell->GetBackClr();
    else
    {
       TextBkClr = GetBackClr();
    }

	if(!IsFixed())
	{
		TRY
		{
			CBrush brush(TextBkClr);
			pDC->FillRect(rect, &brush);//填充矩形
			
		} 
        CATCH(CResourceException, e)
		{
			e->ReportError();
		}
		END_CATCH
	}
	else
	{
		CPen lightpen(PS_SOLID, 1,  ::GetSysColor(COLOR_3DHIGHLIGHT)),
                darkpen(PS_SOLID,  1, ::GetSysColor(COLOR_3DDKSHADOW)),
                *pOldPen = pDC->GetCurrentPen();
		
		pDC->SelectObject(&lightpen);//使用亮色
        pDC->MoveTo(rect.right, rect.top);
        pDC->LineTo(rect.left, rect.top);//從右到左畫頂邊
        pDC->LineTo(rect.left, rect.bottom);//從上到下畫左邊

		pDC->SelectObject(&darkpen);//使用暗色
        pDC->MoveTo(rect.right, rect.top);
        pDC->LineTo(rect.right, rect.bottom);//從上到下畫右邊
        pDC->LineTo(rect.left, rect.bottom);//從右到左畫底邊

		pDC->SelectObject(pOldPen);//恢復筆

	}

	CFont *pFont = GetFontObject();//在這里選擇了字體
	ASSERT(pFont);

    if(pFont)
		pDC->SelectObject(pFont);
	

	// Draw sort arrow
	//畫排序箭頭:

    if (pGrid->GetSortColumn() == nCol && nRow == 0)//如果排序的列是nCol并且行號是0才畫
    {
        CSize size = pDC->GetTextExtent(_T("M"));
        int nOffset = 2;

        // Base the size of the triangle on the smaller of the column
        // height or text height with a slight offset top and bottom.
        // Otherwise, it can get drawn outside the bounds of the cell.
        size.cy -= (nOffset * 2);

        if (size.cy >= rect.Height())
            size.cy = rect.Height() - (nOffset * 2);

        size.cx = size.cy;      // Make the dimensions square

        // Kludge for vertical text
        BOOL bVertical = (GetFont()->lfEscapement == 900);

        // Only draw if it'll fit!
        if (size.cx + rect.left < rect.right+2)
        {
            int nTriangleBase = rect.bottom - nOffset - size.cy;    // Triangle bottom right
            int nTriangleLeft;
            if (bVertical)
                nTriangleLeft = (rect.right + rect.left - size.cx)/2; // Triangle middle
            else
                nTriangleLeft = rect.right - size.cx;               // Triangle RHS

            CPen penShadow(PS_SOLID, 0, /*::GetSysColor(COLOR_3DSHADOW)*/RGB(0,0,255));
            //CPen penLight(PS_SOLID, 0, ::GetSysColor(COLOR_3DHILIGHT));
            if (pGrid->GetSortAscending())//升序的
            {
                // Draw triangle pointing upwards
				//畫頂尖向上的三角形
                CPen *pOldPen = (CPen*) pDC->SelectObject(&penShadow/*penLight*/);
                pDC->MoveTo( nTriangleLeft-4 +(size.cx)/2, nTriangleBase +size.cy );
                pDC->LineTo( nTriangleLeft-4 +(size.cx)/2, nTriangleBase -(size.cy)/2-1);
                pDC->LineTo( nTriangleLeft-4 +(size.cx)-(size.cx)/4 , nTriangleBase+(size.cy)/4);
				pDC->MoveTo(nTriangleLeft-4 +(size.cx)/2, nTriangleBase-(size.cy)/2);
				pDC->LineTo( nTriangleLeft-4 +(size.cx)/4, nTriangleBase+(size.cy)/4 );
				pDC->SelectObject(pOldPen);
			}
			else
            {
                // Draw triangle pointing downwards
				//畫頂尖向下的三角形

                CPen *pOldPen = (CPen*) pDC->SelectObject(&penShadow);
                pDC->MoveTo( nTriangleLeft-4 + (size.cx )/ 2 , nTriangleBase - (size.cy)/2);
                pDC->LineTo( nTriangleLeft-4 + (size.cx )/ 2 , nTriangleBase + size.cy+1 );
                pDC->LineTo( nTriangleLeft-4 + (size.cx)- (size.cx)/4, nTriangleBase +(size.cy)/4);
				pDC->MoveTo(nTriangleLeft -4+ (size.cx )/2 , nTriangleBase + size.cy );
				pDC->LineTo(nTriangleLeft-4+(size.cx)/4 , nTriangleBase + (size.cy)/4 );
                pDC->SelectObject(pOldPen);
            }
            
            if (!bVertical)
                rect.right -= size.cy;
        }
    }
    //以上所有都是畫單元格的
	pDC->SetTextColor(TextClr);


	//以下是負責顯示文字的
    // We want to see '&' characters so use DT_NOPREFIX
	// 我們想看見'&'字符....
//    GetTextRect(rect);//文字要顯示的位置
    //DrawText(pDC->m_hDC, GetText(), -1, rect, GetFormat() | DT_NOPREFIX);
	DrawText(pDC->m_hDC, GetText(), -1, rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER/*DT_LEFT/*GetFormat() | DT_NOPREFIX*/);
	//畫文字,DT_SINGLELINE|DT_BOTTOM|DT_RIGHT/*DT_LEFT*/是對齊方式的設定
    //DT_SINGLELINE|DT_VCENTER|DT_RIGHT(垂直居中右對齊)
	//DT_SINGLELINE|DT_CENTER|(水平居中)
	//DT_SINGLELINE|DT_CENTER|DT_VCENTER(垂直水平都居中)
	//這幾種組合都要結合DT_SINGLELINE設定才能見效


    pDC->RestoreDC(nSavedDC);//恢復原DC模式(不透明)

    return TRUE;
}

void CGridCellBase::operator=(const CGridCellBase& cell)
{
	if (this == &cell) return;

    SetGrid(cell.GetGrid());    // do first in case of dependencies
    SetText(cell.GetText());
    SetTextClr(cell.GetTextClr());
    SetBackClr(cell.GetBackClr());
    SetFont(cell.IsDefaultFont()? NULL : cell.GetFont());
    
}

// Returns a pointer to a cell that holds default values for this particular type of cell
CGridCellBase* CGridCellBase::GetDefaultCell() const
{
    if (GetGrid())//得到表格類的指針
		//返回保存在表格類中的缺省單元格的信息:
        return GetGrid()->GetDefaultCell(IsFixedRow(), IsFixedCol());
    return NULL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合视频在线| 成人综合婷婷国产精品久久| 欧洲在线/亚洲| 欧美一区二区二区| 综合久久久久综合| 韩国欧美国产一区| 欧美精品自拍偷拍动漫精品| 中文字幕在线观看不卡| 久久精品72免费观看| 在线中文字幕一区| 国产精品久久一卡二卡| 国产乱码精品一区二区三区五月婷| 91丨porny丨国产入口| www国产成人| 久久99这里只有精品| 欧美精品日韩一区| 亚洲一级片在线观看| 色综合久久中文字幕综合网| 国产日韩高清在线| 经典三级在线一区| 日韩一区二区在线看片| 视频一区二区中文字幕| 欧美亚日韩国产aⅴ精品中极品| 国产精品日韩精品欧美在线| 国产一区免费电影| 久久综合色之久久综合| 久久不见久久见免费视频7| 欧美一区二区精品在线| 午夜精品久久久久影视| 欧美精品视频www在线观看| 亚洲永久精品国产| 欧美三日本三级三级在线播放| 亚洲视频网在线直播| 99精品视频免费在线观看| 中文字幕一区二区三区在线观看| 国产一区二区三区日韩 | 国产午夜精品美女毛片视频| 麻豆精品在线播放| 精品毛片乱码1区2区3区| 男女性色大片免费观看一区二区| 欧美一级二级三级蜜桃| 色菇凉天天综合网| 一区二区三区欧美日韩| 欧美精品视频www在线观看| 日本欧美一区二区三区乱码| 欧美xxxxx裸体时装秀| 国产一区二区三区美女| 国产精品毛片久久久久久| av中文字幕在线不卡| 亚洲欧美日韩国产综合| 91国产成人在线| 肉丝袜脚交视频一区二区| 欧美岛国在线观看| 成人av在线一区二区三区| 一区二区三区在线视频免费| 欧美老肥妇做.爰bbww视频| 毛片一区二区三区| 国产精品无码永久免费888| 色婷婷久久久久swag精品| 亚洲成av人影院在线观看网| 欧美精品一区二区三区在线播放 | 日韩和欧美的一区| 久久蜜桃一区二区| 色综合一个色综合亚洲| 日产精品久久久久久久性色| 国产亚洲成av人在线观看导航| 99re视频精品| 六月丁香综合在线视频| 麻豆精品在线观看| 日韩理论片在线| 精品日韩欧美在线| 色女孩综合影院| 黄色资源网久久资源365| 一区二区三区中文字幕在线观看| 4438x亚洲最大成人网| bt欧美亚洲午夜电影天堂| 青青草精品视频| 亚洲人成影院在线观看| 久久综合九色综合久久久精品综合 | 一本久久综合亚洲鲁鲁五月天| 婷婷夜色潮精品综合在线| 国产校园另类小说区| 欧美区在线观看| 成人av在线网| 国产精品18久久久久久久久久久久| 亚洲精品久久久久久国产精华液| 久久中文字幕电影| 777奇米四色成人影色区| 97se狠狠狠综合亚洲狠狠| 国产一区二区三区日韩| 日韩成人伦理电影在线观看| 亚洲猫色日本管| 中文字幕乱码亚洲精品一区| 精品日产卡一卡二卡麻豆| 欧美精品电影在线播放| 在线视频观看一区| 91香蕉视频污| heyzo一本久久综合| 国产黄人亚洲片| 国产一区二区三区四区在线观看| 免费看欧美女人艹b| 亚洲成人精品在线观看| 亚洲视频在线一区| 亚洲色图一区二区三区| 综合在线观看色| 亚洲美女精品一区| 一区二区三区在线视频观看| 自拍偷拍国产精品| 亚洲欧洲av另类| 中文字幕五月欧美| 亚洲欧洲精品一区二区精品久久久 | 亚洲私人黄色宅男| 日韩一区在线播放| 一区二区在线免费观看| 一区二区三区四区在线免费观看| 国产精品电影一区二区| 日韩美女久久久| 亚洲综合男人的天堂| 亚洲一二三区不卡| 亚洲chinese男男1069| 日韩—二三区免费观看av| 美女一区二区视频| 国产在线国偷精品免费看| 国产精品一区二区免费不卡| 国产成人精品www牛牛影视| 国产精品一级片| 99久久精品免费| 日本韩国一区二区| 欧美久久高跟鞋激| 亚洲午夜久久久久久久久电影网| 亚洲一区二区三区中文字幕在线| 亚洲大片精品永久免费| 精品一区二区三区在线观看| 国产九色精品成人porny| 成人免费不卡视频| 欧美日韩视频一区二区| 日韩欧美亚洲国产精品字幕久久久| 精品国产三级a在线观看| 国产精品国产三级国产aⅴ中文| 亚洲欧美一区二区在线观看| 亚洲123区在线观看| 麻豆国产精品视频| 成人免费av在线| 欧美优质美女网站| 久久久久综合网| 亚洲已满18点击进入久久| 看电影不卡的网站| 91网站最新地址| 国产欧美一区二区精品性色 | 婷婷久久综合九色国产成人 | 一区二区三区四区中文字幕| 日韩精品亚洲一区| 国产福利一区二区三区视频| 色呦呦一区二区三区| 精品国产伦一区二区三区观看体验 | 中文字幕乱码日本亚洲一区二区| 一区视频在线播放| 免费成人美女在线观看.| 成人18精品视频| 日韩女优电影在线观看| 亚洲欧洲日韩女同| 久久99精品久久久久久动态图| 99re这里只有精品视频首页| 日韩一区二区免费电影| 一区二区三区四区激情| 国产精品一区二区三区四区 | 日日夜夜一区二区| jlzzjlzz亚洲女人18| 精品国产一二三| 丝袜亚洲另类丝袜在线| 色婷婷av一区二区三区软件| 久久久久久久久蜜桃| 男人的j进女人的j一区| 欧美性极品少妇| 亚洲黄色在线视频| 99久久国产免费看| 国产性天天综合网| 精品在线一区二区| 欧美一区二区在线免费播放| 一区二区三区四区国产精品| 成人精品免费看| 国产午夜亚洲精品午夜鲁丝片| 蜜臀av亚洲一区中文字幕| 欧美日韩一级视频| 亚洲一二三区不卡| 欧美色精品在线视频| 一区二区三区欧美日| 91久久精品国产91性色tv| 亚洲欧洲中文日韩久久av乱码| 丁香六月综合激情| 国产日韩视频一区二区三区| 经典三级视频一区| 26uuu久久天堂性欧美| 精品一区二区免费在线观看| 欧美大片在线观看| 国产一区二区视频在线播放| 久久你懂得1024| 成人激情免费视频| 综合电影一区二区三区 | 韩国三级电影一区二区|