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

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

?? srclinesdlg.cpp

?? 計算源程序行數的軟件
?? CPP
字號:
// SrcLinesDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SrcLines.h"
#include "SrcLinesDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	CHyperLink	m_web;
	CButtonST	m_btnOk;
	CHyperLink m_email;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	DDX_Control(pDX, IDC_WEB, m_web);
	DDX_Control(pDX, IDOK, m_btnOk);
	DDX_Control(pDX, IDC_EMAIL, m_email);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSrcLinesDlg dialog

CSrcLinesDlg::CSrcLinesDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSrcLinesDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSrcLinesDlg)
	m_lC = 0;
	m_lCpp = 0;
	m_lCppLines = 0;
	m_lHeaderLines = 0;
	m_lTotalLines = 0;
	m_stcSource = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

CSrcLinesDlg::~CSrcLinesDlg ()
{
}

void CSrcLinesDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSrcLinesDlg)
	DDX_Control(pDX, IDC_BTNC, m_btnC);
	DDX_Control(pDX, IDC_BTNCPP, m_btnCpp);
	DDX_Control(pDX, IDOK, m_btnExit);
	DDX_Control(pDX, IDC_OPENFILE, m_btnOpen);
	DDX_Control(pDX, IDC_ABOUT, m_btnAbout);
	DDX_Text(pDX, IDC_CPPLINES, m_lCppLines);
	DDX_Text(pDX, IDC_HEADERLINES, m_lHeaderLines);
	DDX_Text(pDX, IDC_TOTALLINES, m_lTotalLines);
	DDX_Text(pDX, IDC_STATIC_CORCPP, m_stcSource);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CSrcLinesDlg, CDialog)
	//{{AFX_MSG_MAP(CSrcLinesDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_OPENFILE, OnOpenfile)
	ON_BN_CLICKED(IDC_BTNCPP, OnRadiocpp)
	ON_BN_CLICKED(IDC_BTNC, OnRadioc)
	ON_BN_CLICKED(IDC_ABOUT, OnAbout)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSrcLinesDlg message handlers

BOOL CSrcLinesDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	SetupEditCtrls ();
	SetupFlatBtns ();
	SetupRadioBtns ();
	m_stcSource = " *.CPP文件行數";
	UpdateData ( false );

	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CSrcLinesDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CSrcLinesDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CSrcLinesDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CSrcLinesDlg::OnOpenfile() 
{
// Construct a file open dialog and show it for 
// selecting source file
	CString strFilter;
	strFilter.LoadString ( IDS_FILEFILTER );
	char pBuffer[255*255] = "";
//	
	CFileDialog dlgOpen ( 
		true, NULL, NULL, 
		OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY | 
		OFN_ENABLESIZING | OFN_OVERWRITEPROMPT,
		strFilter, NULL );
	dlgOpen.m_ofn.lpstrTitle = "請選擇源文件";
	// Pointer to file name buffer
	dlgOpen.m_ofn.lpstrFile = pBuffer;
	// Max number of files you can open once
	dlgOpen.m_ofn.nMaxFile = sizeof ( pBuffer );
	//
	if ( dlgOpen.DoModal () == IDOK )
	{
		POSITION pos;
		pos = dlgOpen.GetStartPosition ();
		CString strFile = "";
		unsigned long lLines = 0;	// One source file lines
		unsigned long lTotal = 0;	// Total source file lines
		unsigned long lCpp = 0;		// Cpp source file lines
		unsigned long lC = 0;		// C source file lines
		unsigned long lHeader = 0;  // Header file lines
		while ( pos )
		{
			CFile cFile;
			CFileException e;
			// Get file name one by one
			strFile= dlgOpen.GetNextPathName ( pos );
			// If open file successful
			if ( cFile.Open ( strFile, CFile::modeRead, &e ) )
			{
				unsigned long lSize = cFile.GetLength ();
				char *pBuf = new char[lSize];
				if ( !pBuf )  // Out of memory
					MessageBox ( 
						"\n\n  內存不足!無法讀文件!  ",
						"無法讀文件!" );
				else		  // Alloc memory success
				{
					cFile.ReadHuge ( pBuf, lSize );
					lLines = GetFileLines ( pBuf,lSize );
					CString strExt = "";
					strExt = GetFileExt ( strFile );
					if ( "cpp" == strExt )
						lCpp += lLines;
					else if ( "c" == strExt )
						lC += lLines;
					else if ( "h"  == strExt || "hpp" == strExt )
						lHeader += lLines;
					lTotal += lLines; // Total lines

					if ( pBuf )		  // Release memory
						delete []pBuf;
				}
				cFile.Close ();		// Close file manually
			}				// End of if ( cFile.Opne...)
		}					// End of while ( pos )	
		// Record cpp & c file lines
		m_lC = lC;			// C file lines
		m_lCpp = lCpp;		// Cpp file lines

		// Show cpp & header file lines		  
		if ( m_btnCpp.GetButtonState () ==  BUTTON_ON )
			m_lCppLines = lCpp;
		else
			m_lCppLines = lC;
		m_lHeaderLines = lHeader;
		// Show total file lines
		m_lTotalLines = lTotal;

		UpdateData ( false );
	}						// End of if ( IDOK == ... )
}							// End of OnFileOpen

void CSrcLinesDlg::SetupEditCtrls()
{
	UpdateData ();
}

unsigned long CSrcLinesDlg::GetFileLines(char* &lpBuf, unsigned long lSize)
{
	// Counter
	unsigned long lLines = 0;
	for ( unsigned long i = 0; i < lSize; i++ )
		if ( '\n' == lpBuf[i] )
			lLines++;
	// Return lines of source file
	return lLines;
}

CString CSrcLinesDlg::GetFileExt(LPCTSTR lpszFile)
{
	CString strExt = "";
	CString name ( lpszFile );
	UINT nSize = 0;
	nSize = name.GetLength ();
	name.MakeLower ();
	if ( 'h' == name.GetAt ( nSize - 1 ) && 
		 '.' == name.GetAt ( nSize - 2 ) )	// Found it is a header file
		strExt = "h";
	else if ( 'c' == name.GetAt ( nSize - 1 ) &&
		      '.' == name.GetAt ( nSize - 2 ) )
		strExt = "c";						// C file
	else if ( 'p' == name.GetAt ( nSize - 1 ) &&
			  'p' == name.GetAt ( nSize - 2 ) )
	{
		if ( 'c' == name.GetAt ( nSize - 3 ) )
			strExt = "cpp";					// Cpp file
		else if ( 'h' == name.GetAt ( nSize - 3 ) )
			strExt = "hpp";					// Hpp file
	}
	// Return extension of specified file
	return strExt;
}

void CSrcLinesDlg::OnRadiocpp() 
{
	m_stcSource = " *.CPP文件行數";
	m_lCppLines = m_lCpp;	// Load cpp file lines

	RefreshButtons ();
	UpdateData ( false );
}

void CSrcLinesDlg::OnRadioc() 
{
	m_stcSource = " *.C文件行數";
	m_lCppLines = m_lC;		// Load c file lines

	RefreshButtons ( 1 );
	UpdateData ( false );		
}

BOOL CAboutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_email.SetURL ( "mailto:anty@990.net" );
	m_email.SetLinkCursor ( AfxGetApp()->LoadCursor ( IDC_HAND ) );
	m_web.SetURL ( "antbaby.126.com" );
	m_web.SetLinkCursor ( AfxGetApp()->LoadCursor ( IDC_HAND ) );
	//Add flat button ok
	m_btnOk.SubclassDlgItem ( IDI_OK, this );
	m_btnOk.SetIcon ( IDI_OK );
	m_btnOk.AddToolTip ( "返回" );

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSrcLinesDlg::OnAbout() 
{
	CAboutDlg dlgAbout;
	dlgAbout.DoModal ();
}

void CSrcLinesDlg::SetupFlatBtns()
{
// Flat button open
	m_btnOpen.SubclassDlgItem ( IDI_OPEN, this );
	m_btnOpen.SetIcon ( IDI_OPEN );
	m_btnOpen.SetShowText ( false );
	m_btnOpen.AddToolTip ( "打開源文件" );
// Flat button about
	m_btnAbout.SubclassDlgItem ( IDI_ABOUT, this );
	m_btnAbout.SetIcon ( IDI_ABOUT );
	m_btnAbout.SetShowText ( false );
	m_btnAbout.AddToolTip ( "關于SrcLines..." );
// Flat button exit
	m_btnExit.SubclassDlgItem ( IDI_EXIT, this );
	m_btnExit.SetIcon ( IDI_EXIT );
	m_btnExit.SetShowText ( false );
	m_btnExit.AddToolTip ( "即將沒有你^_^" );
}

void CSrcLinesDlg::SetupRadioBtns()
{
	m_btnCpp.LoadBitmaps ( IDB_RBU, IDB_RBD, IDB_RBF, IDB_RBX );	
	m_btnC.LoadBitmaps ( IDB_RBU, IDB_RBD, IDB_RBF, IDB_RBX );
	RefreshButtons ( 0 );
}

int CSrcLinesDlg::RefreshButtons(int nSelected)
{
	m_btnCpp.SetButtonState( BUTTON_OFF );
	m_btnC.SetButtonState( BUTTON_OFF );
	if ( nSelected == 1 )
	{
		m_nSelected = nSelected;
		m_btnC.SetButtonState ( BUTTON_ON );
	}
	else if ( nSelected == 0 )
	{
		m_nSelected = nSelected;
		m_btnCpp.SetButtonState ( BUTTON_ON );
	}

	return m_nSelected;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品亚洲一区二区不卡| 成人激情免费视频| 韩国午夜理伦三级不卡影院| 成人网男人的天堂| 91精品国产综合久久久久久漫画 | 一区二区三区中文字幕精品精品| 成人一道本在线| 国产成人免费在线| 7878成人国产在线观看| 国产精品国产三级国产普通话99 | 亚洲午夜激情网站| 国产乱理伦片在线观看夜一区| 色妹子一区二区| 国产欧美日韩精品一区| 日本女优在线视频一区二区| 色综合中文字幕| 亚洲国产高清在线| 久久99蜜桃精品| 日韩欧美一二区| 亚洲电影中文字幕在线观看| 91麻豆精品一区二区三区| 日本一区二区三区久久久久久久久不 | 在线观看亚洲精品| 国产欧美一区视频| 精品一区二区三区在线播放| 欧美日韩国产在线播放网站| 一区二区三区在线观看网站| 丁香六月综合激情| 国产日韩欧美精品综合| 精品一区二区三区在线播放| 日韩欧美一级二级三级| 日韩电影免费一区| 欧美日韩高清在线| 一二三四区精品视频| 在线观看网站黄不卡| 亚洲天堂免费看| 99久久er热在这里只有精品66| 日本一区二区视频在线| 国产.欧美.日韩| 国产嫩草影院久久久久| 波多野结衣一区二区三区| 久久久99久久| 丁香亚洲综合激情啪啪综合| 中文字幕在线观看一区| 91片在线免费观看| 亚洲一区二区av在线| 91国产免费看| 日韩中文字幕麻豆| 精品国偷自产国产一区| 国内久久精品视频| 欧美激情一区二区三区蜜桃视频| 成人av在线观| 一区二区三区在线观看网站| 欧美日韩日日骚| 久久99精品国产.久久久久久 | 精品制服美女久久| 91精品久久久久久久91蜜桃| 日本中文一区二区三区| 欧美精品一区二区三区蜜臀| 岛国精品在线观看| 一区二区视频在线看| 91麻豆精品国产综合久久久久久| 免费国产亚洲视频| 国产欧美一区在线| 精品视频全国免费看| 精品夜夜嗨av一区二区三区| 国产精品免费视频观看| 欧美日韩精品系列| 国产一二精品视频| 一区二区三区在线免费观看| 日韩免费成人网| 成人av在线观| 美国十次了思思久久精品导航| 久久精品亚洲一区二区三区浴池| 91尤物视频在线观看| 日本视频在线一区| 亚洲综合一区在线| 风间由美一区二区av101| 欧美无砖专区一中文字| 免费xxxx性欧美18vr| 91官网在线观看| 另类小说欧美激情| 亚洲精品欧美在线| 精品国产伦一区二区三区观看方式 | 亚洲欧洲av在线| 日韩一区二区三区在线观看| 99国产精品久久久久久久久久| 美女www一区二区| 亚洲精品第一国产综合野| 久久精品亚洲麻豆av一区二区| 欧美日韩视频在线一区二区| 成人自拍视频在线| 看电视剧不卡顿的网站| 亚洲资源中文字幕| 中文字幕在线不卡一区二区三区| 91看片淫黄大片一级在线观看| 精品成人a区在线观看| 樱花草国产18久久久久| 欧美精品一区二区蜜臀亚洲| 欧美日韩一级黄| www.综合网.com| 久久精品国产一区二区三区免费看| 一区二区视频在线看| 国产精品热久久久久夜色精品三区 | 日本欧美韩国一区三区| 亚洲人成人一区二区在线观看| 久久影院视频免费| 欧美一区二区大片| 欧美猛男男办公室激情| 欧美中文字幕久久| 91在线你懂得| 99精品一区二区| a4yy欧美一区二区三区| 国产精品系列在线播放| 亚洲欧美成人一区二区三区| 亚洲日本电影在线| av一二三不卡影片| 国产一区二区三区四区五区入口| 亚洲美女一区二区三区| 国产精品欧美综合在线| 国产女同性恋一区二区| 国产亚洲一区二区三区四区| 日韩一区二区免费电影| 欧美久久久影院| 日韩一级高清毛片| 久久综合九色综合97_久久久| 欧美成人bangbros| 26uuuu精品一区二区| 久久久精品影视| 国产精品毛片高清在线完整版| 久久久国产一区二区三区四区小说| 精品国产成人系列| 欧美激情一二三区| 亚洲精品中文字幕乱码三区| 亚洲成人你懂的| 麻豆91精品视频| 国产aⅴ综合色| 色狠狠色狠狠综合| 日韩一区二区三区视频| 久久久99久久| 亚洲综合免费观看高清在线观看| 亚洲成人一二三| 久久精品国产色蜜蜜麻豆| 国产成人午夜精品影院观看视频 | 日韩视频在线永久播放| 精品国产人成亚洲区| 久久精品综合网| 亚洲精品国产第一综合99久久| 亚洲午夜精品在线| 国产精品一线二线三线| 91黄色免费网站| 精品少妇一区二区三区免费观看| 国产美女主播视频一区| 欧美三级乱人伦电影| 欧美成人bangbros| 日韩理论片一区二区| 日韩在线卡一卡二| 成人激情小说网站| 精品成人佐山爱一区二区| 亚洲欧美视频在线观看视频| 日本三级亚洲精品| 97超碰欧美中文字幕| 日韩美女视频在线| 亚洲欧美日韩中文播放| 国产一区美女在线| 欧美亚洲图片小说| 国产日本欧美一区二区| 亚洲成人在线观看视频| 成人午夜视频免费看| 日韩女同互慰一区二区| 夜夜夜精品看看| 国产ts人妖一区二区| 7799精品视频| 亚洲欧美另类久久久精品| 国产美女在线精品| 欧美一个色资源| 一区二区免费在线播放| 国产成人精品www牛牛影视| 欧美一区二区日韩一区二区| 亚洲欧美日韩国产中文在线| 国产福利一区二区三区在线视频| 欧美日韩国产一区二区三区地区| 91在线国产福利| 激情五月播播久久久精品| 亚洲老妇xxxxxx| 国产欧美日韩中文久久| 午夜精品免费在线观看| 成人一区二区三区中文字幕| 精品国产三级a在线观看| 日韩国产欧美三级| 欧美理论电影在线| 亚洲午夜私人影院| 在线观看一区不卡| 亚洲免费视频成人| 91网站最新地址| 中文一区二区在线观看| 国产美女娇喘av呻吟久久| 欧美第一区第二区| 极品销魂美女一区二区三区| 日韩一区二区在线看片|