📄 accounttreeview.cpp
字号:
// AccountTreeView.cpp : implementation file
//
#include "stdafx.h"
#include "stocksystem.h"
#include "AccountTreeView.h"
#include "StockSystem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAccountTreeView
IMPLEMENT_DYNCREATE(CAccountTreeView, CTreeView)
CAccountTreeView::CAccountTreeView()
{
}
CAccountTreeView::~CAccountTreeView()
{
}
BEGIN_MESSAGE_MAP(CAccountTreeView, CTreeView)
//{{AFX_MSG_MAP(CAccountTreeView)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged)
ON_WM_RBUTTONDOWN()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_UPDATETREE, updatTreeView)
ON_MESSAGE(WM_UPDATETREEITEM, updateTreeItem)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAccountTreeView drawing
void CAccountTreeView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CAccountTreeView diagnostics
#ifdef _DEBUG
void CAccountTreeView::AssertValid() const
{
CTreeView::AssertValid();
}
void CAccountTreeView::Dump(CDumpContext& dc) const
{
CTreeView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CAccountTreeView message handlers
void CAccountTreeView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
CStockSystemApp *pApp = (CStockSystemApp *)AfxGetApp();
CTreeCtrl &my_tree = GetTreeCtrl();
HTREEITEM selItem = my_tree.GetSelectedItem();
CString title = my_tree.GetItemText(selItem);
int len = pApp->UserInfoVect.size();
for (int i=0; i<len; i++)
{
if (pApp->UserInfoVect[i].username == title)
{
if (pApp->UserInfoVect[i].loginstate == "1")
{
//表示已经登陆了
return;
}
else
{
CPersonFrame *pframe = (CPersonFrame *)(GetParent()->GetParent());
pframe->SendMessage(WM_SHOWINPUTPWDDLG, (WPARAM)&title, NULL);
}
}
}
}
void CAccountTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_imagerlist.Create(IDB_TREE_LOGIN, 34, 20, RGB(0, 255, 0));
CTreeCtrl &my_tree = GetTreeCtrl();
my_tree.SetImageList(&m_imagerlist, TVSIL_NORMAL);
}
void CAccountTreeView::GetCurrentUser(CString &user)
{
CTreeCtrl &my_tree = GetTreeCtrl();
HTREEITEM selItem = my_tree.GetSelectedItem();
current_user = my_tree.GetItemText(selItem);
user = current_user;
}
void CAccountTreeView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
//获取当前的用户名
CTreeCtrl &my_tree = GetTreeCtrl();
HTREEITEM selItem = my_tree.GetSelectedItem();
current_user = my_tree.GetItemText(selItem);
*pResult = 0;
}
LONG CAccountTreeView::updatTreeView(WPARAM wParam, LPARAM lParam)
{
CTreeCtrl &my_tree = GetTreeCtrl();
HTREEITEM selItem = my_tree.GetSelectedItem();
CString *pstr = (CString *)wParam;
int lparam = (int)lParam;
if (*pstr == "更新窗口")
{
my_tree.SetItemImage(selItem, 1, 1);
}
else if (*pstr == "关闭帐户")
{
my_tree.SetItemImage(selItem, 0, 0);
}
else if (*pstr == "删除账户")
{
HTREEITEM selItem = my_tree.GetSelectedItem();
my_tree.DeleteItem(selItem);
}
//表示新建帐户,图标设置为登录状态时的图标
else if (lparam == 2)
{
my_tree.InsertItem(*pstr, 1, 1);
// my_tree.SetItemImage(selItem, 1, 1);
}
else
{
my_tree.InsertItem(*pstr);
}
return 0;
}
LONG CAccountTreeView::updateTreeItem(WPARAM wParam, LPARAM lParam)
{
CString *pstr = (CString *)wParam;
CTreeCtrl &mytree = GetTreeCtrl();
HTREEITEM selItem = mytree.GetSelectedItem();
mytree.SetItemText(selItem, *pstr);
return 0;
}
int CAccountTreeView::GetCurrentItem()
{
CTreeCtrl &mytree = GetTreeCtrl();
HTREEITEM selItem = mytree.GetSelectedItem();
int item = (int)selItem;
return item;
}
void CAccountTreeView::SetCurrentUser(CString &user)
{
}
void CAccountTreeView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMenu menu;
if(!menu.LoadMenu(IDR_MENU)){
MessageBox("加载菜单失败");
}
CMenu* pM = menu.GetSubMenu(0);
CPoint pt ;
GetCursorPos(&pt);
pM->TrackPopupMenu(TPM_RIGHTALIGN |TPM_RIGHTBUTTON, pt.x, pt.y,GetParent()->GetParent());
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -