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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? icontact.cpp

?? This code is Address book code for Windows Mobile. This source code support windows mobile 5.0 over.
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
    // "About" at bottom of screen
    SelectObject(hdc, SecondaryListFont);
    SetTextAlign(hdc, TA_LEFT | TA_BOTTOM);
    SetTextColor(hdc, pSettings->rgbListItemSelectedShadow);
    ExtTextOut(hdc, rList.left + 2, rList.bottom - 2, 
        NULL, NULL, SZ_ABOUT, ABOUT_LENGTH, 0);

    if (count == 0) {
        //TODO: maybe indicate empty list?
        return;
    }

    // ******* DRAW LIST ITEMS
	while (nItem < count && rItem.bottom < rList.bottom) {
		dItemTmp = pListData->GetItem(nItem);

        rItem.top = rItem.bottom;
        rItem.bottom = rItem.top + StartPosition[nItem+1] 
            - StartPosition[nItem];
        
        if (nItem == pListData->GetCurrentItemIndex() 
            && stScreenType == stList) {
            DrawItemSelectedOn(hdc, dItemTmp, rItem);
		}
        else {
            DrawItemOn(hdc, dItemTmp, rItem);
		}

        // ****** Group Header
		if (stScreenType == stList
			&& pListData->IsItemNewGroup(nItem)
            && dItemTmp.wcGroup && rItem.top >= rList.top) {

            DrawGroupHeaderOn(hdc, nItem, rItem);
		} 

        // Next nItem
        nItem++;
	}

    // Special: Draw the group of the list nItem that's at the top of the list
    dItemTmp = pListData->GetItem(nFirstItem);
    if (dItemTmp.wcGroup && yOffset >= 0) {
        RECT rTopGroup = {rList.left, 0, rList.right, DefaultGroupHeight};
        DrawGroupHeaderOn(hdcTmp, nFirstItem, rTopGroup);

        int nHeight = DefaultGroupHeight;
        int nBottom = nHeight;

        if (pListData->IsItemNewGroup(nFirstItem + 1)) {
            nBottom = min(nBottom, StartPosition[nFirstItem + 1] - yOffset);
        }

        // account for the fact that the list
        // doesn't start at the top of the screen
        nBottom += rList.top;

        int nLeft = rList.left;
        int nWidth = rList.right - rList.left;
        int nTop = nBottom - nHeight;

        if (bScrolling && pSettings->doFastGraphics) {
            BitBlt(hdc, nLeft, nTop, nWidth, nHeight, hdcTmp, 0, 0, SRCCOPY);
        }
        else {
            BltAlpha(hdc, nLeft, nTop, nWidth, nHeight, hdcTmp, 200);
        }
    }

    // Draw list indicator if scrolling quickly
	if (bScrolling) {
		SelectObject(hdc, ListIndicatorFont);
	    SetTextAlign(hdc, TA_CENTER);
		SetTextColor(hdc, pSettings->rgbListGroupText);
		SetBkMode(hdc, TRANSPARENT);

        pListData->GetItemGroup(nFirstItem, buffer);
        int length = _tcslen(buffer);

        ExtTextOut(hdc, (rList.right - rList.left) / 2 + rList.left, 
            rList.top + 10, NULL, NULL, buffer, length, 0);
	}
}

void DrawGroupHeaderOn(HDC hdc, int index, RECT rItem) {
    RECT rHeader = rItem;
    rHeader.bottom = rHeader.top + DefaultGroupHeight;
    TCHAR buffer[10];

    pListData->GetItemGroup(index, buffer);
    int length = _tcslen(buffer);

	// ****** GroupHeader background
	FillRect(hdc, &rHeader, pSettings->hbrListGroupBackground);

    // separator
    RECT rSep = rHeader;
    rSep.top = rHeader.bottom - ListSeparatorHeight;
    FillRect(hdc, &rSep, pSettings->hbrListItemSeparator);
	SetTextAlign(hdc, TA_LEFT);

	// ******* Draw Group Header Text
	SelectObject(hdc, GroupFont);
   	SetBkMode(hdc, TRANSPARENT);
	SetTextColor(hdc, pSettings->rgbListGroupText);
	ExtTextOut(hdc, rItem.left + ListGroupItemIndent, 
        rHeader.top - 1 + ((DefaultGroupHeight - GroupItemFontSize) / 2),
        NULL, NULL, buffer, length, 0);
}

void DrawItemSelectedOn(HDC hdc, Data dItem, RECT rItem) {
	// ******* DRAW ITEM BACKGROUND
	DrawGradientGDI(hdc, rItem,
        pSettings->rgbListItemSelectedBackground1,
        pSettings->rgbListItemSelectedBackground2);

	// ****** Draw Item Text
	SelectObject(hdc, PrimaryListFont);
	SetTextAlign(hdc, TA_LEFT);

    // Item Shadow Text
	SetTextColor(hdc, pSettings->rgbListItemSelectedShadow);
	ExtTextOut(hdc, rItem.left + ListItemIndent,
        rItem.bottom - ((DefaultItemHeight + ItemFontSize) / 2),
        ETO_OPAQUE, NULL, dItem.szPrimaryText, dItem.nPrimaryTextLength, 0);

    // Item Text
	SetTextColor(hdc, pSettings->rgbListItemSelectedText);
	ExtTextOut(hdc, rItem.left + ListItemIndent, 
        rItem.bottom - 2 - ((DefaultItemHeight + ItemFontSize) / 2),
        ETO_OPAQUE, NULL, dItem.szPrimaryText, dItem.nPrimaryTextLength, 0);
}

void DrawItemOn(HDC hdc, Data dItem, RECT rItem) {
    // Item Background
    FillRect(hdc, &rItem, pSettings->hbrListItemBackground);

    // separator
    RECT rSep = rItem;
    rSep.top = rItem.bottom - ListSeparatorHeight;
    FillRect(hdc, &rSep, pSettings->hbrListItemSeparator);
	SetTextAlign(hdc, TA_LEFT);

    // Item Primary Text
	SelectObject(hdc, PrimaryListFont);
	SetTextColor(hdc, dItem.rgbPrimaryText);
	ExtTextOut(hdc, rItem.left + ListItemIndent,
        rItem.bottom - 2 - ((DefaultItemHeight + ItemFontSize) / 2),
        ETO_OPAQUE, NULL, dItem.szPrimaryText, dItem.nPrimaryTextLength, 0);

	// Item Secondary Text
    if (dItem.nSecondaryTextLength == 0)
        return;
    SelectObject(hdc, SecondaryListFont);
    SetTextAlign(hdc, TA_RIGHT);
    SetTextColor(hdc, pSettings->rgbListItemText);
    ExtTextOut(hdc, rItem.right - ListItemIndent,
        rItem.bottom - 2 - ((DefaultItemHeight + ItemSecondaryFontSize) / 2),
	    ETO_OPAQUE, NULL, dItem.szSecondaryText, dItem.nSecondaryTextLength, 0);

}

void DrawItemDetailsOn(HDC hdc, Data dItem, int yOffset) {
    int nameHeight = 0;
    int nPictureSize = 0;
    DataDetail dd = {0};
    RECT rRow, rClip;

    SelectObject(hdc, PrimaryListFont);
    SetTextAlign(hdc, TA_LEFT);
    SetBkMode(hdc, TRANSPARENT);

    int iItemCount = pListData->GetItemDetailCount();
    int iCurrentIndex = pListData->GetCurrentDetailIndex();
    int iBitmapHeight = 0;
    int iBitmapWidth = 0;

	// ******* DRAW ITEM BACKGROUND
	DrawGradientGDI(hdc, rContent,
        pSettings->rgbListItemSelectedBackground1,
        pSettings->rgbListItemSelectedBackground2);

    // ******* Draw the current item's picture, if it exists
    HBITMAP hBitmap = pListData->GetHBitmap(ItemDetailsPictureSize);
    if (NULL != hBitmap) {
        iBitmapHeight = pListData->GetHBitmapHeight();
        iBitmapWidth = pListData->GetHBitmapWidth();

        int left = ItemDetailsPadding;
        int top = (DefaultItemHeight * 2 - iBitmapHeight) / 2 + rContent.top - yOffset;
        int right = left + iBitmapWidth;
        int bottom = top + iBitmapHeight;

        // draw black square with a black border of 1
        RECT rcBitmap = { left - 1, top - 1, right + 1, bottom + 1};
        DrawRect(hdc, &rcBitmap, (COLORREF)0);

        // paint the bitmap on the DC
        TransparentImage(hdc, left, top, iBitmapWidth, iBitmapHeight, 
            hBitmap, 0, 0, iBitmapWidth, iBitmapHeight, (COLORREF)0);
    }

    // ******* Now, draw the item data
	for (int c = 0; c < iItemCount; c++) {
        dd = pListData->GetItemDetail(c);

        if (dd.type == diNothing)
            continue;

        rRow.top = c * DefaultItemHeight + rContent.top - yOffset;
        rRow.bottom = rRow.top + DefaultItemHeight;
        if (dd.type == diName)
            rRow.bottom += DefaultItemHeight;

        rRow.left = rContent.left;

        if (rRow.top + yOffset 
            < iBitmapHeight + rContent.top + ItemDetailsPadding / 2 
            && iBitmapWidth > 0)

            rRow.left += iBitmapWidth + ItemDetailsPadding;

        rRow.right = rContent.right;

        rClip.left = rRow.left + ItemDetailsPadding / 2 + 1;
        rClip.right = rRow.right - ItemDetailsPadding / 2 - 1;
        rClip.top = rRow.top + ItemDetailsPadding / 2 + 1;
        rClip.bottom = rRow.bottom - ItemDetailsPadding / 2 - 1;

        // If this is the first item of a new group of items, draw a rectangle
        // around the group
        if ((dd.type == diPhone 
            || dd.type == diEmail 
            || dd.type == diUrl
            || dd.type == diDetailsButton 
            || dd.type == diCallButton
            || dd.type == diSmsButton
            || dd.type == diEditButton
            || dd.type == diSaveContactButton) 
            && c > 0 
            && pListData->GetItemDetail(c-1).type != dd.type) {

            int nRows = 1;
            while (c + nRows < iItemCount 
                && pListData->GetItemDetail(c + nRows).type == dd.type)
                nRows++;

            SelectObject(hdc, pSettings->hbrListItemBackground);
            SetTextColor(hdc, pSettings->rgbListItemText);
            RoundRect(hdc, 
                rRow.left + ItemDetailsPadding / 2, 
                rRow.top + ItemDetailsPadding / 3, 
                rRow.right - ItemDetailsPadding / 2, 
                rRow.bottom - ItemDetailsPadding / 3 + DefaultItemHeight * (nRows - 1),
                ItemDetailsPadding, ItemDetailsPadding);
        }

        if (rRow.bottom < 0)
            continue;

        // Indicate the currently selected item
	    if (c == iCurrentIndex) {
            SelectObject(hdc, pSettings->hbrListItemSelectedBackground);
            RoundRect(hdc, 
                rRow.left + ItemDetailsPadding / 2, 
                rRow.top + ItemDetailsPadding / 3, 
                rRow.right - ItemDetailsPadding / 2, 
                rRow.bottom - ItemDetailsPadding / 3,
                ItemDetailsPadding, ItemDetailsPadding);
            SetTextColor(hdc, pSettings->rgbListItemSelectedText);
	    }
        else {
            SelectObject(hdc, GetStockObject(NULL_BRUSH));
    	    SetTextColor(hdc, pSettings->rgbListItemText);
        }

        if (dd.type == diName) {
            SelectObject(hdc, PrimaryListFont);
            SetTextAlign(hdc, TA_LEFT | TA_TOP);

            // Display the shadow
            SetTextColor(hdc, pSettings->rgbListItemSelectedShadow);
		    ExtTextOut(hdc, rRow.left + ItemDetailsPadding + 1, 
                rRow.top + ItemDetailsPadding + 1,
                ETO_CLIPPED, &rClip, dd.text, _tcslen(dd.text), NULL);

            // Display the name
            SetTextColor(hdc, pSettings->rgbListItemSelectedText);
		    ExtTextOut(hdc, rRow.left + ItemDetailsPadding, 
                rRow.top + ItemDetailsPadding,
                ETO_CLIPPED, &rClip, dd.text, _tcslen(dd.text), NULL);
        }

        else if (dd.type == diCompany) {
            SelectObject(hdc, SecondaryListFont);
            SetTextColor(hdc, pSettings->rgbListItemSelectedText);
		    ExtTextOut(hdc, rRow.left + ItemDetailsPadding, rRow.top,
                NULL, NULL, dd.text, _tcslen(dd.text), NULL);
        }

        else if (dd.type == diDetailsButton 
            || dd.type == diEditButton
            || dd.type == diCallButton
            || dd.type == diSmsButton
            || dd.type == diSaveContactButton) {
		    
            SelectObject(hdc, PrimaryListFont);
            SetTextAlign(hdc, TA_CENTER);

            ExtTextOut(hdc, (rRow.right - rRow.left) / 2 + rRow.left,
                (rRow.bottom - rRow.top - ItemFontSize) / 2 + rRow.top,
                ETO_CLIPPED, &rClip, dd.text,
                _tcslen(dd.text), 0);

        }

        else if (dd.type == diEmail
                || dd.type == diUrl) {
            SelectObject(hdc, PrimaryListFont);
            SetTextAlign(hdc, TA_CENTER);

            ExtTextOut(hdc, (rRow.right - rRow.left) / 2 + rRow.left,
                (rRow.bottom - rRow.top - ItemFontSize) / 2 + rRow.top,
                ETO_CLIPPED, &rClip, dd.text, _tcslen(dd.text), 0);
        }

        else {
		    SelectObject(hdc, ItemDetailsFont);
            SetTextAlign(hdc, TA_RIGHT | TA_BOTTOM);
            int y = (rRow.bottom - rRow.top) / 2 + rRow.top;

            // Draw the label: "Home", "Work", etc.
            rClip.right = rRow.left + ItemDetailsPadding * 5;
            ExtTextOut(hdc, rClip.right, 
                y + (ItemDetailsFontSize / 2),
                ETO_CLIPPED, &rClip, dd.label, _tcslen(dd.label), NULL);

            rClip.left = rClip.right + 3;
            rClip.right = rRow.right - ItemDetailsPadding;

            // Draw the right label: "SMS"
            if (dd.type == diPhone) {
                rClip.right -= ItemDetailsPadding * 2;
                ExtTextOut(hdc, rRow.right - ItemDetailsPadding, 
                    y + (ItemDetailsFontSize / 2),
                    NULL, NULL, pSettings->sms_string, 
                    _tcslen(pSettings->sms_string), NULL);
            }

            SetTextAlign(hdc, TA_LEFT | TA_BOTTOM);
            SelectObject(hdc, PrimaryListFont);

		    ExtTextOut(hdc, rClip.left + ItemDetailsPadding / 3, y + (ItemFontSize / 2),
                ETO_CLIPPED, &rClip, dd.text, _tcslen(dd.text), NULL);
        }
	}
}

void DrawKeyboardOn(HDC hdc, RECT rKeyboard) {
	SelectObject(hdc, KeyboardFont);
	SelectObject(hdc, pSettings->hpenKeyboardGrid);
    SetTextColor(hdc, pSettings->rgbKeyboardText);
	SetBkMode(hdc, TRANSPARENT);
    int x, y, g, h;

    FillRect(hdc, &rKeyboard, pSettings->hbrKeyboardBackground);

    SetTextAlign(hdc, TA_CENTER);

    // Draw the horizontal lines
    for (h = 0; h < nKeyboardRows; h++) {
        y = rKeyboard.top + h 
            * (rKeyboard.bottom - rKeyboard.top) / nKeyboardRows;
        MoveToEx(hdc, rKeyboard.left, y, (LPPOINT) NULL);
        LineTo(hdc, rKeyboard.right, y);
    }
    MoveToEx(hdc, rKeyboard.left, rKeyboard.bottom - 1, (LPPOINT) NULL);
    LineTo(hdc, rKeyboard.right, rKeyboard.bottom - 1);

    // Draw the vertical lines
    for (g = 0; g < nKeyboardCols; g++) {
        x = rKeyboard.left + g 
            * (rKeyboard.right - rKeyboard.left) / nKeyboardCols;
        MoveToEx(hdc, x, rKeyboard.top, (LPPOINT) NULL);
        LineTo(hdc, x, rKeyboard.bottom);
    }
    MoveToEx(hdc, rKeyboard.right - 1, rKeyboard.top, (LPPOINT) NULL);
    LineTo(hdc, rKeyboard.right - 1, rKeyboard.bottom);

    // Draw the letters
    int i = 0;
	for (h = 0; h <= nKeyboardRows; h++) {
        y = rKeyboard.top 
            + ((GroupHeight - KeyboardFontSize) / 2) 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美羞羞免费网站| 国产精品久久久久久久久晋中 | 国产精品国产馆在线真实露脸| 精品国产一区二区国模嫣然| 精品国产精品一区二区夜夜嗨| 日韩一区二区免费电影| 欧美电影免费观看高清完整版在| 日韩一区二区三区在线观看| 精品日韩一区二区三区免费视频| 欧美大尺度电影在线| 精品久久一区二区| 亚洲精品在线观看视频| 国产视频一区不卡| 国产精品进线69影院| 亚洲美女淫视频| 亚洲国产视频一区二区| 日韩精品一区第一页| 免费成人美女在线观看.| 国产一区二区三区四区在线观看| 国产精品一区二区在线观看网站| 国产91色综合久久免费分享| 91首页免费视频| 欧美性极品少妇| 日韩免费看网站| 国产欧美一区视频| 一区二区三区四区激情| 日韩精品亚洲一区二区三区免费| 日本免费在线视频不卡一不卡二| 国产在线精品一区二区三区不卡| 成人激情午夜影院| 欧洲另类一二三四区| 欧美一区二区三区思思人| 欧美一区二区免费| 国产欧美在线观看一区| 夜夜嗨av一区二区三区网页| 日韩激情av在线| 国产精品亚洲一区二区三区妖精| av日韩在线网站| 91国产丝袜在线播放| 欧美精品第1页| 国产亲近乱来精品视频| 亚洲国产精品一区二区www| 久久99国产精品久久| 色综合中文字幕| 日韩一区二区三区精品视频| 久久精品一区二区三区不卡牛牛 | 韩国精品免费视频| 99久久亚洲一区二区三区青草| 欧美做爰猛烈大尺度电影无法无天| 日韩精品资源二区在线| 亚洲男同1069视频| 久久99久久99| 在线观看亚洲专区| 国产亚洲人成网站| 亚洲成人av一区| 丁香啪啪综合成人亚洲小说 | 3d成人h动漫网站入口| 欧美国产乱子伦| 日日夜夜精品视频天天综合网| 国产成人自拍在线| 4438x亚洲最大成人网| 国产精品久久久一本精品| 日韩成人一区二区| 91免费版pro下载短视频| 精品国产第一区二区三区观看体验 | 国产精品国产自产拍高清av王其| 日本视频在线一区| 欧洲一区在线电影| 国产精品第一页第二页第三页| 久久精品国产第一区二区三区 | 中文字幕视频一区二区三区久| 日本va欧美va欧美va精品| 色哟哟亚洲精品| 中文字幕免费一区| 韩国女主播成人在线| 6080国产精品一区二区| 一区二区三区丝袜| eeuss影院一区二区三区| 久久日韩粉嫩一区二区三区| 蜜臀久久99精品久久久久宅男 | 欧美三级视频在线播放| 亚洲三级电影网站| 成人在线一区二区三区| 亚洲精品在线一区二区| 日本三级亚洲精品| 欧美三级资源在线| 亚洲一区二区av在线| 99精品桃花视频在线观看| 国产免费久久精品| 国产精品白丝jk白祙喷水网站| 日韩欧美国产精品| 美腿丝袜一区二区三区| 日韩一区二区三区免费看| 日本最新不卡在线| 欧美日韩国产美女| 天堂一区二区在线| 欧美片在线播放| 亚洲va韩国va欧美va精品| 日本高清不卡视频| 樱花草国产18久久久久| 91色婷婷久久久久合中文| 国产精品国产三级国产普通话99| 成人丝袜18视频在线观看| 国产精品无遮挡| 国产成人丝袜美腿| 欧美激情一区二区| aaa亚洲精品| 国产精品进线69影院| 99久久国产免费看| 亚洲免费看黄网站| 欧美色综合网站| 视频在线观看一区二区三区| 91精品国产一区二区人妖| 日韩高清在线一区| 日韩欧美综合在线| 国产一区二区在线看| 日本一区二区三区视频视频| 粉嫩高潮美女一区二区三区| 国产日韩精品一区二区三区| 成人av集中营| 亚洲男女毛片无遮挡| 欧美日韩成人综合在线一区二区| 日韩成人精品在线观看| 精品国产乱子伦一区| 成人永久看片免费视频天堂| 亚洲美女屁股眼交| 欧美精品99久久久**| 国产一区二区三区四区五区入口| 中文在线资源观看网站视频免费不卡| 成人深夜福利app| 一区二区三区精品久久久| 欧美一区二区在线免费播放| 国产自产高清不卡| 中文字幕日韩欧美一区二区三区| 91麻豆精品视频| 麻豆国产91在线播放| 中文字幕二三区不卡| 在线一区二区三区| 麻豆国产91在线播放| 亚洲欧洲av在线| 在线不卡中文字幕播放| 国产成人免费在线观看不卡| 亚洲综合一区二区三区| 精品国产伦一区二区三区观看方式 | 中文无字幕一区二区三区 | 欧美精品一区二区久久婷婷| 成人在线视频一区二区| 丝袜亚洲另类丝袜在线| 久久久久久久久久看片| 在线观看视频一区二区| 国产一二三精品| 亚洲欧美国产77777| 亚洲精品一区在线观看| 色婷婷久久久久swag精品| 看电视剧不卡顿的网站| 亚洲免费在线视频| 久久综合色天天久久综合图片| 91国产视频在线观看| 国产精品一区一区| 亚洲成精国产精品女| 国产成人免费视频一区| 午夜精品福利在线| av不卡一区二区三区| 精品在线播放免费| 亚洲午夜久久久久中文字幕久| 久久九九影视网| 欧美一级免费大片| 在线亚洲高清视频| 粉嫩av亚洲一区二区图片| 日韩二区三区四区| 亚洲精选在线视频| 国产日韩欧美电影| 日韩女同互慰一区二区| 欧美视频一区二区三区四区| 99久久免费精品高清特色大片| 韩国av一区二区| 美女被吸乳得到大胸91| 亚洲午夜视频在线| 亚洲黄色尤物视频| 国产精品水嫩水嫩| 久久欧美一区二区| 精品人伦一区二区色婷婷| 欧美日韩精品欧美日韩精品一| 91在线看国产| 丁香网亚洲国际| 国产乱码精品一区二区三 | 91精品国产综合久久久蜜臀粉嫩 | 91成人网在线| 99久久夜色精品国产网站| 国产成人av一区二区三区在线| 蜜臀a∨国产成人精品| 日韩精品国产精品| 亚洲一区二区三区中文字幕在线| 国产精品国产三级国产aⅴ原创| 久久久久久夜精品精品免费| 欧美一级二级在线观看| 日韩亚洲欧美综合| 日韩一级免费观看| 欧美无人高清视频在线观看| 欧洲av在线精品|