⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 从联合证券数据读取股票数据以及画出K线。不完善
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "StockDataParse.h"
#include "DlgStockInfo.h"

#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_SEL_SEL_FILEPATH, OnSelSelFilepath)
	ON_COMMAND(ID_SEL_DRAW_KLINE, OnSelDrawKline)
	ON_COMMAND(IDR_SEL_READ_DB, OnSelReadDb)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
:bDrawKLine(false)
{
	// TODO: add member initialization code here
	//bDrawKLine = false;
	
	
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


void CMainFrame::OnSelSelFilepath() 
{
	// TODO: Add your command handler code here
	if(IDOK == myDlgReadFile.DoModal())
	{
		m_dlgPlot.m_List_ST_StockInfoQ = myDlgReadFile.m_List_ST_StockInfoQ;
		if(myDlgReadFile.bShowKline == true)
		{
			bDrawKLine = true;
		}
		
	}
	
}

void CMainFrame::OnSelDrawKline() 
{
	// TODO: Add your command handler code here
	if(bDrawKLine)
	{
		if(IDOK == m_dlgPlot.DoModal())
		{
			m_dlgPlot.PlotKLine();
		}
	}
	else{
		AfxMessageBox("please select file to plot");
	}
	
	
	
}

void CMainFrame::OnSelReadDb() 
{
	// TODO: Add your command handler code here
	DlgStockInfo oDlgStockInfo;
	oDlgStockInfo.DoModal();
	
		
	
}

//解析股票报告信息
//DEL int CMainFrame::FunParseStockTypeInfo(unsigned char* pchInput,ST_StockReportInfo* pST_StockReportInfo, int* piRet)
//DEL {
//DEL 	if(pchInput ==NULL)
//DEL 	{
//DEL 		return -1;
//DEL 	}
//DEL 	unsigned char* pchStart = pchInput;
//DEL 	//	pchInput = pchInput;
//DEL 	
//DEL 	/* 解析股票 类型,字的起始位置
//DEL 	pchTemp = pBuf+0x20;			
//DEL 			ST_tockType myST_tockType[50];
//DEL 						memset(myST_tockType,0,sizeof(ST_tockType));
//DEL 						for(int i=0;i<40;i++)
//DEL 						{
//DEL 							int index=0;
//DEL 							unsigned char* pchTempindex = pchTemp;
//DEL 							while (*pchTempindex !='\0') 
//DEL 							{					
//DEL 								myST_tockType[i].chStockTypeName[index] = *pchTempindex++;
//DEL 								index++;
//DEL 							}
//DEL 							myST_tockType[i].chStockTypeName[index] ='\0';
//DEL 							
//DEL 							myST_tockType[i].uiStockTypeNameOffset = *(int*)(pchTemp+12);
//DEL 							
//DEL 							pchTemp = pchTemp+0x20;
//DEL 							
//DEL 	}*/
//DEL 			
//DEL 	
//DEL 	//read stock code
//DEL 	memset(pST_StockReportInfo,0,sizeof(ST_StockReportInfo));
//DEL 	
//DEL 	//hu shen
//DEL 	if(*pchInput =='0')
//DEL 	{
//DEL 		pST_StockReportInfo->chSc = 0;
//DEL 	}
//DEL 	else 
//DEL 	{
//DEL 		pST_StockReportInfo->chSc = 1;  //chSc
//DEL 	}
//DEL 	
//DEL 	pchInput++;		
//DEL 	
//DEL 	//股票代码
//DEL 	memcpy(pST_StockReportInfo->chGpdm,pchInput,6);
//DEL 	pchInput=pchInput+6;
//DEL 
//DEL 	//更新日期
//DEL 	memcpy(pST_StockReportInfo->chGxrq,pchInput,8);
//DEL 	pchInput=pchInput+8;
//DEL 	
//DEL 	const int iLen  = 14;
//DEL 	//总股本   Zgb 
//DEL 	pST_StockReportInfo->fZgb = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	//Skip Gjg  Fqrfrg  Frg
//DEL 	pchInput = pchInput+3*iLen;
//DEL 	
//DEL 	//流通B股  Bg
//DEL 	pST_StockReportInfo->fBg = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//H股  Hg
//DEL 	pST_StockReportInfo->fHg = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//流通A股 Ltag
//DEL 	pST_StockReportInfo->fLtag = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//Skip Zgg Zpg			
//DEL 	pchInput = pchInput+2*iLen;
//DEL 	
//DEL 	//总资产:   Zzc  
//DEL 	pST_StockReportInfo->fZzc = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//流动资产  Ldzc
//DEL 	pST_StockReportInfo->fLdzc = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//固定资产:    Gdzc 
//DEL 	pST_StockReportInfo->fGdzc = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//无形资产:      Wxzc
//DEL 	pST_StockReportInfo->fWxzc = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//长期投资:     Cqtz
//DEL 	pST_StockReportInfo->fCqtz = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//流动负债:      Ldfz
//DEL 	pST_StockReportInfo->fLdfz = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	
//DEL 	//长期负债:     Cqfz
//DEL 	pST_StockReportInfo->fCqfz= TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	
//DEL 	//资本公积金:     Zbgjj
//DEL 	pST_StockReportInfo->fZbgjj= TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	
//DEL 	//净资产:    Jzc
//DEL 	pST_StockReportInfo->fJzc = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	
//DEL 	//主营收入:     Zysy
//DEL 	pST_StockReportInfo->fZysy = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	
//DEL 	//主营利润:     Zyly
//DEL 	pST_StockReportInfo->fZyly = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	
//DEL 	//应收帐款:     Qtly 
//DEL 	pST_StockReportInfo->fQtly = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//营业利润:     Yyly
//DEL 	pST_StockReportInfo->fYyly = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//投资收益:       Tzsy 
//DEL 	pST_StockReportInfo->fTzsy = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	// 经营现金流量:     Btsy
//DEL 	pST_StockReportInfo->fBtsy= TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//总现金流量:     Yywsz 
//DEL 	pST_StockReportInfo->fYywsz = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//存货:          Snsytz
//DEL 	pST_StockReportInfo->fSnsytz = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//利润总额:     Lyze 
//DEL 	pST_StockReportInfo->fLyze = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//税后利润:     Shly
//DEL 	pST_StockReportInfo->fShly = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//净利润:     Jly 
//DEL 	pST_StockReportInfo->fJly = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//未分配利润:          Wfply
//DEL 	pST_StockReportInfo->fWfply = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//季报调整净资:           Tzmgjz
//DEL 	pST_StockReportInfo->fTzmgjz = TanslatChar2Double(pchInput,iLen);
//DEL 	pchInput = pchInput+iLen;
//DEL 	
//DEL 	//所属地区3:         Dy   
//DEL 	int iLength = 3;
//DEL 	pST_StockReportInfo->chDy = TranslatChar2Uch(pchInput,iLength);
//DEL 	pchInput = pchInput+iLength;
//DEL 	
//DEL 	
//DEL 	//所属行业4:          Hy 
//DEL 	iLength = 4;
//DEL 	pST_StockReportInfo->chHy = TranslatChar2Uch(pchInput,iLength);
//DEL 	pchInput = pchInput+iLength;
//DEL 	
//DEL 	//报告类别2:   Zbnb
//DEL 	pchInput++;
//DEL 	memcpy(&(pST_StockReportInfo->chZbnb),pchInput,1);
//DEL 	pchInput++;
//DEL 	
//DEL 	//上市日期8:ssDate
//DEL 	
//DEL 	memcpy(pST_StockReportInfo->chSsDate,pchInput,8);
//DEL 	pST_StockReportInfo->chSsDate[8] = '\0';
//DEL 	
//DEL 	pchInput = pchInput+8;
//DEL 	
//DEL 	//Skip Modidate Gdrs
//DEL 	pchInput = pchInput+15;
//DEL 
//DEL 	*piRet = pchInput - pchStart;
//DEL 
//DEL 
//DEL 	return 0;
//DEL 
//DEL }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -