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

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

?? listctrl.cpp

?? 使用VC6開發 通過并口操作IIC 使用winio驅動操作并口
?? CPP
字號:
// ListCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "IIC.h"
#include "IICDlg.h"
#include "ListCtrl.h"
#include "EditCell.h"

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

#define IDC_EDITCELL 1001

/////////////////////////////////////////////////////////////////////////////
// gxListCtrl

gxListCtrl::gxListCtrl (CString Text /* = "Some Text" */)
{
    DefaultText = Text;
}

gxListCtrl::~gxListCtrl()
{
}

BEGIN_MESSAGE_MAP(gxListCtrl, CListCtrl)
    //{{AFX_MSG_MAP(gxListCtrl)
    ON_WM_HSCROLL()
    ON_WM_VSCROLL()
    ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, OnEndLabelEdit)
    ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONDBLCLK()
	ON_WM_SHOWWINDOW()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// gxListCtrl message handlers

void 
gxListCtrl::Resize (int cx, int cy)
{
    CRect Rect (0, 0, cx, cy);
    MoveWindow (&Rect);
    InvalidateRect (Rect);
    SetColumnWidth (2, LVSCW_AUTOSIZE_USEHEADER);
}

CEdit* 
gxListCtrl::EditSubItem (int Item, int Column)
{
    // The returned pointer should not be saved

    // Make sure that the item is visible
    if (!EnsureVisible (Item, TRUE)) 
    {
		InsertItemEx (Item);
		if (!EnsureVisible (Item, TRUE)) 
			return NULL;
    }

    // Make sure that nCol is valid
    CHeaderCtrl* pHeader = (CHeaderCtrl*) GetDlgItem(0);
    int nColumnCount = pHeader->GetItemCount();
    if (Column >= nColumnCount || GetColumnWidth (Column) < 5)
		return NULL;

    // Get the column offset
    int Offset = 0;
    for (int iColumn = 0; iColumn < Column; iColumn++)
		Offset += GetColumnWidth (iColumn);

    CRect Rect;
    GetItemRect (Item, &Rect, LVIR_BOUNDS);

    // Now scroll if we need to expose the column
    CRect ClientRect;
    GetClientRect (&ClientRect);
    if (Offset + Rect.left < 0 || Offset + Rect.left > ClientRect.right)
    {
		CSize Size;
		if (Offset + Rect.left > 0)
			Size.cx = -(Offset - Rect.left);
		else
			Size.cx = Offset - Rect.left;
		Size.cy = 0;
		Scroll (Size);
		Rect.left -= Size.cx;
    }

    // Get Column alignment
    LV_COLUMN lvCol;
    lvCol.mask = LVCF_FMT;
    GetColumn (Column, &lvCol);
    DWORD dwStyle;
    if ((lvCol.fmt & LVCFMT_JUSTIFYMASK) == LVCFMT_LEFT)
		dwStyle = ES_LEFT;
    else if ((lvCol.fmt & LVCFMT_JUSTIFYMASK) == LVCFMT_RIGHT)
		dwStyle = ES_RIGHT;
    else dwStyle = ES_CENTER;

    Rect.left += Offset+4;
    Rect.right = Rect.left + GetColumnWidth (Column) - 3;
    if (Rect.right > ClientRect.right)
		Rect.right = ClientRect.right;

    dwStyle |= WS_BORDER | WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL;
    CEdit *pEdit = new gxEditCell (this, Item, Column, GetItemText (Item, Column));
    pEdit->Create (dwStyle, Rect, this, IDC_EDITCELL);

    return pEdit;
}

int 
gxListCtrl::HitTestEx (CPoint& Point, int* pColumn)
{
    int ColumnNum = 0;
    int Row = HitTest (Point, NULL);
    
    if (pColumn)
		*pColumn = 0;

    // Make sure that the ListView is in LVS_REPORT
    if ((GetWindowLong (m_hWnd, GWL_STYLE) & LVS_TYPEMASK) != LVS_REPORT)
		return Row;

    // Get the top and bottom row visible
    Row = GetTopIndex();
    int Bottom = Row + GetCountPerPage();
    if (Bottom > GetItemCount())
	    Bottom = GetItemCount();
    
    // Get the number of columns
    CHeaderCtrl* pHeader = (CHeaderCtrl*) GetDlgItem(0);
    int nColumnCount = pHeader->GetItemCount();

    // Loop through the visible rows
    for(; Row <= Bottom; Row++)
    {
		// Get bounding rect of item and check whether point falls in it.
		CRect Rect;
		GetItemRect (Row, &Rect, LVIR_BOUNDS);
		if (Rect.PtInRect (Point))
		{
			// Now find the column
			for (ColumnNum = 0; ColumnNum < nColumnCount; ColumnNum++)
			{
				int ColWidth = GetColumnWidth (ColumnNum);
				if (Point.x >= Rect.left && Point.x <= (Rect.left + ColWidth))
				{
					if (pColumn)
						*pColumn = ColumnNum;
					return Row;
				}
				Rect.left += ColWidth;
			}
		}
    }
    return -1;
}

BOOL 
hexNumberToInt (CString HexNumber, int& Number)
{
    char* pStopString;
    Number = strtoul (HexNumber, &pStopString, 16);
    return Number != ULONG_MAX;
} // hexNumberToInt

int 
gxListCtrl::InsertItemEx (int Item)
{
    int Result = InsertItem (Item + 1, DefaultText);
    CString ItemVal, Temp;
    if (Item == 0)
		ItemVal = "1000";
    else
	{
		int HexVal;
		Temp = GetItemText (Item - 1, 1);
		hexNumberToInt (Temp, HexVal);
		ItemVal.Format ("%02X", HexVal + 1);
	}

    SetItemText (Item, 1, ItemVal);

    SetColumnWidth (2, LVSCW_AUTOSIZE_USEHEADER);

    return Result;
}

void 
gxListCtrl::OnHScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	if (GetFocus() != this) 
		SetFocus();
    CListCtrl::OnHScroll (nSBCode, nPos, pScrollBar);
}

void 
gxListCtrl::OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
    if (GetFocus() != this) 
		SetFocus();
    
    CListCtrl::OnVScroll (nSBCode, nPos, pScrollBar);
}

void 
gxListCtrl::OnEndLabelEdit (NMHDR* pNMHDR, LRESULT* pResult) 
{
    LV_DISPINFO *plvDispInfo = (LV_DISPINFO *)pNMHDR;
    LV_ITEM	*plvItem = &plvDispInfo->item;

    if (plvItem->pszText != NULL)
    {
		SetItemText (plvItem->iItem, plvItem->iSubItem, plvItem->pszText);
    }
    *pResult = FALSE;
}

void 
gxListCtrl::OnLButtonDown (UINT nFlags, CPoint Point) 
{
    CListCtrl::OnLButtonDown (nFlags, Point);
	return;//change to db click
    int Index;
    int ColNum;
    if ((Index = HitTestEx (Point, &ColNum)) != -1)
    {
		if (GetWindowLong (m_hWnd, GWL_STYLE) & LVS_EDITLABELS)
			EditSubItem (Index, ColNum);
    }
}

void gxListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CListCtrl::OnLButtonDblClk(nFlags, point);
    int Index;
    int ColNum;
    if ((Index = HitTestEx (point, &ColNum)) != -1)
    {
		if (GetWindowLong (m_hWnd, GWL_STYLE) & LVS_EDITLABELS)
			EditSubItem (Index, ColNum);
    }
}



void gxListCtrl::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CListCtrl::OnShowWindow(bShow, nStatus);
	// TODO: Add your message handler code here	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女区一区| 裸体在线国模精品偷拍| 亚洲综合在线观看视频| 日韩av一级片| 色婷婷国产精品综合在线观看| 欧美亚男人的天堂| 中文字幕欧美国产| 亚洲成人资源网| 成人自拍视频在线观看| 91精品婷婷国产综合久久性色 | 亚洲国产精品尤物yw在线观看| 免费看日韩精品| 色婷婷亚洲精品| 欧美激情一区二区在线| 天天操天天色综合| 色妞www精品视频| 久久久久久久久久久久电影| 午夜电影网一区| 92精品国产成人观看免费| 精品国产欧美一区二区| 午夜在线成人av| 欧美亚洲国产bt| 综合婷婷亚洲小说| 成人禁用看黄a在线| 日韩免费福利电影在线观看| 亚洲国产aⅴ天堂久久| 国v精品久久久网| 久久免费美女视频| 人人超碰91尤物精品国产| 欧美吻胸吃奶大尺度电影| 国产精品久久久久三级| 国产精品一二一区| 久久丝袜美腿综合| 国产在线视频不卡二| 日韩丝袜情趣美女图片| 五月激情综合网| 欧美电影一区二区三区| 亚洲午夜国产一区99re久久| 91免费观看视频在线| 亚洲欧美日韩国产一区二区三区 | 99国产精品一区| 国产精品乱码一区二区三区软件| 懂色av一区二区三区免费观看| 国产偷国产偷亚洲高清人白洁| 韩国一区二区视频| 久久精品一区二区三区不卡牛牛| 韩国欧美国产一区| 国产欧美一区在线| 成人黄色在线看| 亚洲激情欧美激情| 欧美性欧美巨大黑白大战| 亚洲成av人片在线| 欧美一区二区三区公司| 狠狠色丁香久久婷婷综合丁香| 久久亚洲春色中文字幕久久久| 国内精品免费在线观看| 国产清纯白嫩初高生在线观看91 | 国产精品每日更新| 99re这里只有精品首页| 亚洲主播在线播放| 欧美日韩精品一区二区三区蜜桃| 日韩av电影免费观看高清完整版 | 91福利国产精品| 五月天中文字幕一区二区| 制服丝袜中文字幕一区| 国产一区美女在线| 亚洲视频小说图片| 欧美一区二区三区视频免费播放| 六月婷婷色综合| 国产精品久久久久影院| 欧美色偷偷大香| 狠狠久久亚洲欧美| 亚洲蜜桃精久久久久久久| 欧美日本一区二区在线观看| 久久草av在线| 国产精品第五页| 制服丝袜日韩国产| 成人美女在线视频| 日韩制服丝袜av| 国产精品久久久久影院老司| 欧美精品在线一区二区| 国产成人亚洲精品青草天美| 亚洲国产精品人人做人人爽| 久久亚洲一区二区三区四区| 色婷婷一区二区三区四区| 久久97超碰国产精品超碰| 亚洲人成在线观看一区二区| 欧美mv和日韩mv的网站| 91啪亚洲精品| 国产一区二区在线看| 亚洲成a天堂v人片| 国产欧美日韩精品一区| 欧美一区二区三区在| 色天天综合久久久久综合片| 国内精品在线播放| 午夜日韩在线电影| 亚洲精品午夜久久久| 亚洲国产精品成人综合| 欧美一级一级性生活免费录像| 色综合天天综合网国产成人综合天 | 一区二区国产盗摄色噜噜| 久久久久久久电影| 制服丝袜一区二区三区| 欧美日韩一区在线| 91在线免费视频观看| 国产不卡免费视频| 精品一区二区三区久久| 日韩精品高清不卡| 亚洲成人在线网站| 一区二区三区自拍| 亚洲欧美日韩人成在线播放| 国产精品人妖ts系列视频| 日韩精品一区二区三区蜜臀| 欧美高清视频一二三区 | 欧美日韩mp4| 欧美色男人天堂| 日本伦理一区二区| 欧美亚洲日本一区| 欧美午夜精品免费| 色婷婷精品久久二区二区蜜臂av| jizz一区二区| youjizz国产精品| 91在线观看地址| 色嗨嗨av一区二区三区| 色天天综合久久久久综合片| 日本高清不卡在线观看| 欧美中文字幕久久| 欧美日韩国产高清一区二区| 欧美日韩精品欧美日韩精品| 欧美日韩综合色| 91精品国产综合久久久久久久| 欧美二区乱c少妇| 欧美一区二区三区啪啪| 精品不卡在线视频| 国产日产亚洲精品系列| 综合欧美亚洲日本| 亚洲国产一区视频| 琪琪一区二区三区| 国模无码大尺度一区二区三区| 国产精品99久久久久久久vr| 成人高清视频在线| 欧美在线一区二区三区| 在线电影国产精品| 久久久久久电影| 最新日韩av在线| 丝袜a∨在线一区二区三区不卡| 青青国产91久久久久久 | 成人av网站在线观看免费| 99热精品一区二区| 777午夜精品视频在线播放| 日韩欧美国产三级| 综合色中文字幕| 六月丁香婷婷色狠狠久久| 国产91综合一区在线观看| 91国模大尺度私拍在线视频| 正在播放一区二区| 国产精品女主播av| 午夜欧美2019年伦理| 国产成人在线视频播放| 色噜噜狠狠成人网p站| 日韩一级片网站| 亚洲天堂网中文字| 美女网站视频久久| 波多野结衣视频一区| 777a∨成人精品桃花网| 国产精品私人自拍| 日本美女视频一区二区| 99热精品国产| 久久夜色精品国产噜噜av| 亚洲午夜一区二区| 国产成人8x视频一区二区| 欧美精品xxxxbbbb| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日本午夜精品视频在线观看 | 久久99精品久久久久婷婷| 99久久婷婷国产精品综合| 日韩欧美一区在线| 亚洲一区二区视频在线| 高清成人在线观看| 欧美xxxxxxxxx| 亚洲在线成人精品| av电影在线观看一区| 精品国产电影一区二区| 日韩精品乱码免费| 色94色欧美sute亚洲线路二| 国产欧美一区二区在线观看| 奇米影视一区二区三区小说| 欧美综合欧美视频| 国产精品美女久久久久久2018| 久久国产日韩欧美精品| 欧美放荡的少妇| 亚洲午夜久久久久久久久电影网| 成人av电影在线网| 国产视频视频一区| 国产主播一区二区三区| 精品乱人伦一区二区三区| 日产精品久久久久久久性色| 91国在线观看| 亚洲网友自拍偷拍| 欧美日韩视频第一区|