From 8ea6d363df77de2dca288397da8d4f9c3d3a5c4d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 18 十月 2024 18:41:57 +0800
Subject: [PATCH] '项目完善'

---
 CBTrade/ViewManager.cpp |   99 +++++++++++++++++++++----------------------------
 1 files changed, 42 insertions(+), 57 deletions(-)

diff --git a/CBTrade/ViewManager.cpp b/CBTrade/ViewManager.cpp
index de415c7..cc28f70 100644
--- a/CBTrade/ViewManager.cpp
+++ b/CBTrade/ViewManager.cpp
@@ -31,14 +31,14 @@
 	wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
 
 	wxSize size = window->GetSize();
-	cout << "size:"<< size.GetWidth() << endl;
+	cout << "size:" << size.GetWidth() << endl;
 
 
 
 	wxPanel* topPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_TOP_HEIGHT));
 
 
-	wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1,size.GetWidth()<100? PANNEL_TICK_HEIGHT: size.GetWidth()*2/3));
+	wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, size.GetWidth() < 100 ? PANNEL_TICK_HEIGHT : size.GetWidth() * 2 / 3));
 
 
 	wxPanel* moneyPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_MONEY_HEIGHT));
@@ -51,15 +51,15 @@
 
 	initMenu((wxFrame*)window);
 
-	sizer->Add(topPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2);
+	sizer->Add(topPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(tickPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2);
+	sizer->Add(tickPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(moneyPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2);
+	sizer->Add(moneyPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(positionPanel, 1, wxEXPAND |wxLEFT | wxRIGHT, 2);
+	sizer->Add(positionPanel, 1, wxEXPAND | wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(sellPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2);
+	sizer->Add(sellPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
 	window->SetSizer(sizer);
 	this->initTopView(topPanel);
@@ -72,7 +72,7 @@
 
 void ViewManager::ShowJueJinSetting(wxCommandEvent& event)
 {
-	JueJInSettingFrame *jueJinFrame = new JueJInSettingFrame("掘金参数设置");
+	JueJInSettingFrame* jueJinFrame = new JueJInSettingFrame("掘金参数设置");
 	jueJinFrame->ShowModal();
 }
 
@@ -107,7 +107,19 @@
 	this->topWidgets->backTestDate = new wxTextCtrl(pancel, wxID_ANY);
 	this->topWidgets->btnBackTest = new wxButton(pancel, wxID_ANY, "开始回测");
 
+
+	topWidgets->codeInfoLabel = new wxRichTextCtrl(pancel, wxID_ANY, "", wxDefaultPosition, wxSize(-1, 90), wxTE_MULTILINE | wxTE_READONLY | wxBORDER_NONE);
+	wxFont font = topWidgets->codeInfoLabel->GetFont();
+	font.SetPointSize(10);
+	topWidgets->codeInfoLabel->SetFont(font);
+
+
+	wxBoxSizer* infoSizer = new wxBoxSizer(wxHORIZONTAL);
+	infoSizer->Add(topWidgets->codeInfoLabel, 1, wxEXPAND);
+
 	
+
+
 
 	// 绑定事件
 	this->topWidgets->refreshBtn->Bind(wxEVT_BUTTON, &ViewManager::OnRefresh, this);
@@ -115,9 +127,12 @@
 	sizer->Add(this->topWidgets->btnAddZX, 0, wxALL, 2);
 	sizer->Add(this->topWidgets->msgLabel, 1, wxALIGN_CENTER_VERTICAL);
 	sizer->Add(topWidgets->backTestDate, 0, wxALIGN_CENTER_VERTICAL);
-	sizer->Add(topWidgets->btnBackTest, 0, wxLEFT| wxALIGN_CENTER_VERTICAL, 2);
+	sizer->Add(topWidgets->btnBackTest, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, 2);
 	sizer->Add(this->topWidgets->refreshBtn, 0, wxALL, 2);
-	pancel->SetSizer(sizer);
+	wxBoxSizer* rootSizer = new wxBoxSizer(wxVERTICAL);
+	rootSizer->Add(infoSizer, 0, wxEXPAND, 2);
+	rootSizer->Add(sizer, 0, wxEXPAND, 2);
+	pancel->SetSizer(rootSizer);
 }
 
 
@@ -137,18 +152,8 @@
 
 void ViewManager::initTickView(wxPanel* panel)
 {
-	wxString st = "";
-	tickWidgets->tickChart = new TickChart(panel, wxID_ANY,60,TIME_SPACE_BAR,"09:25:00","15:00:00");
-	tickWidgets->codeInfoLabel = new wxRichTextCtrl(panel, wxID_ANY, st, wxDefaultPosition,wxSize(-1,90), wxTE_MULTILINE| wxTE_READONLY| wxBORDER_NONE);
-	wxFont font = tickWidgets->codeInfoLabel->GetFont();
-	font.SetPointSize(10);
-	tickWidgets->codeInfoLabel->SetFont(font);
-
+	tickWidgets->tickChart = new TickChart(panel, wxID_ANY, 60, TIME_SPACE_BAR, "09:25:00", "15:00:00");
 	wxBoxSizer* panelSizer = new wxBoxSizer(wxVERTICAL);
-	wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
-	sizer->Add(tickWidgets->codeInfoLabel,1, wxEXPAND);
-
-	panelSizer->Add(sizer, 0, wxEXPAND, 2);
 	panelSizer->Add(tickWidgets->tickChart, 1, wxEXPAND);
 	panel->SetSizer(panelSizer);
 }
@@ -254,7 +259,7 @@
 				t.detach();
 			}
 			catch (...) {
-			
+
 			}
 		}
 		return false; // 返回 true 表示已经处理了点击事件
@@ -287,7 +292,7 @@
 	ColorTextRenderer(const wxString& varianttype = wxS("wxObject"))
 		: wxDataViewCustomRenderer(varianttype, wxDATAVIEW_CELL_ACTIVATABLE)
 	{
-	
+
 	}
 
 	virtual bool Render(wxRect cell, wxDC* dc, int state)
@@ -329,61 +334,39 @@
 
 void ViewManager::initPositionView(wxPanel* panel)
 {
-	wxDataViewListCtrl* listCtrl = new wxDataViewListCtrl(
+	MyDataViewListCtrl* listCtrl = new MyDataViewListCtrl(
 		panel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1),
 		wxLC_REPORT | wxBORDER_NONE);
 	// 设置整体的字体大小  
-	wxFont font  = listCtrl->GetFont();
+	wxFont font = listCtrl->GetFont();
 	font.SetPointSize(10);
 	listCtrl->SetFont(font);
 
 
 
 	const int COL_COUNT = 13;
-	std::string headers[COL_COUNT] = { "名称","涨幅","现价","现手","正股涨幅","正股买一","持仓金额","成本价","盈亏比","更多","持仓","盈亏","正股名称" };
-	list<int> widths= MyConfigUtil::getPositionColumnWidth();
+	std::string headers[COL_COUNT] = { "名称","涨幅","正股涨幅","正股买一","持仓金额","盈亏比","单笔卖额","现价","成本价","更多","持仓","盈亏","正股名称" };
+	list<int> widths = MyConfigUtil::getPositionColumnWidth();
 	for (int i = 0; i < COL_COUNT; i++) {
 		int width = -1;
 		if (widths.size() > i) {
-			list<int>::iterator e =	widths.begin();
-			std::advance(e,i);
+			list<int>::iterator e = widths.begin();
+			std::advance(e, i);
 			width = *e;
 		}
 		cout << "持仓列宽度:" << i << "-" << width << endl;
-		
+
 		if (i != 9) {
 			auto ctr = new ColorTextRenderer();
 			listCtrl->AppendColumn(new wxDataViewColumn(headers[i], ctr, i, width < 0 ? 50 : width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE));
 		}
 		else {
 			auto bc = new ButtonRenderer();
-			listCtrl->AppendColumn(new wxDataViewColumn(headers[i], bc,i, width < 0? 50:width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE));
+			listCtrl->AppendColumn(new wxDataViewColumn(headers[i], bc, i, width < 0 ? 50 : width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE));
 		}
 	}
-
-	for (int i = 0; i < 1; i++) {
-		wxVector<wxVariant> data;
-		data.push_back(wxVariant("美的转债"));
-		data.push_back(wxVariant("10.20%"));
-		data.push_back(wxVariant("123.123"));
-		data.push_back(wxVariant("452"));
-		data.push_back(wxVariant("10.02%"));
-		data.push_back(wxVariant("12312万"));
-	
-		data.push_back(wxVariant("100000.00"));
-		data.push_back(wxVariant("123.123"));
-
-		data.push_back(wxVariant("1.01%"));
-		data.push_back(wxVariant("美的集团"));
-		
-		data.push_back("");
-		data.push_back(wxVariant("1000"));
-		data.push_back(wxVariant("+20000.10"));
-		listCtrl->AppendItem(data);
-	}
-	listCtrl->Refresh();
+	listCtrl->HandleDataUpdate();
 	positionWidgets->listCtrlReport = listCtrl;
-
 
 	wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
 	sizer->Add(positionWidgets->listCtrlReport, 1, wxEXPAND);
@@ -392,7 +375,7 @@
 
 void ViewManager::initSellView(wxPanel* panel)
 {
-	const int moneys[] = { 50000,40000,30000,20000,10000,5000,3000,2000,1000 };
+	const int moneys[] = { 80000,60000,40000,20000,15000,10000,8000,5000,3000,2000 };
 	//-------按钮操作区域 
 	const int COLUMN_SPACE = 8;
 
@@ -481,7 +464,7 @@
 
 	sellWidgets->showAllPosition = new wxCheckBox(btnPannel, wxID_ANY, "显示无持仓");
 	sellWidgets->showAllPosition->SetValue(TRUE);
-	btnSizer->Add(sellWidgets->showAllPosition, 0,  wxLEFT, COLUMN_SPACE);
+	btnSizer->Add(sellWidgets->showAllPosition, 0, wxLEFT, COLUMN_SPACE);
 
 
 
@@ -502,8 +485,10 @@
 	auto sellNumsSizer = new wxBoxSizer(wxHORIZONTAL);
 
 	for (std::list<wxButton*>::iterator e = sellWidgets->sellNums.begin(); e != sellWidgets->sellNums.end(); e++) {
-		sellNumsSizer->Add(*e, 1, wxEXPAND | wxLEFT | wxRIGHT, 2);
+		(*e)->SetMinSize(wxSize(40,50));
+		sellNumsSizer->Add(*e, 1, wxEXPAND | wxALL, 2);
 	}
+
 	auto rootSizer = new wxBoxSizer(wxVERTICAL);
 	rootSizer->Add(btnPannel, 0, wxEXPAND | wxTOP, 5);
 	rootSizer->Add(sellNumsSizer, 1, wxEXPAND | wxTOP, 5);

--
Gitblit v1.8.0