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

📄 xxsbdlg.cpp

📁 这是一套学校设备管理系统的源码 里面有树形结构使用的很棒的方法
💻 CPP
字号:
 // xxsbdlg.cpp : implementation file
//

#include "stdafx.h"
#include "xxgl.h"
#include "xxsbdlg.h"
#include "strt.h"
#include "ext.h"
#include "func.h"

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

Cxxsbdlg::Cxxsbdlg(CWnd* pParent /*=NULL*/)
	: CDialog(Cxxsbdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cxxsbdlg)
	m_pyjx = _T("");
	m_gdbh = _T("");
	m_sbmc = _T("");
	//}}AFX_DATA_INIT
}

void Cxxsbdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cxxsbdlg)
	DDX_Control(pDX, IDC_TREE1, m_tree);
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Text(pDX, IDC_pyjx, m_pyjx);
	DDX_Text(pDX, IDC_gdbh, m_gdbh);
	DDX_Text(pDX, IDC_sbmc, m_sbmc);
	//}}AFX_DATA_MAP

  CBitmap *bitmap;
  HBITMAP hbitmap;
  bitmap = new CBitmap();
  bitmap->LoadBitmap(IDB_qr);
  hbitmap = (*bitmap).operator HBITMAP();
  CWnd *wn;
  wn = GetDlgItem(IDOK);

  WPARAM wParam;
  LPARAM lParam;
  wParam =  (WPARAM) LOWORD(BS_LEFT | BS_BITMAP); // style 
  lParam =  MAKELPARAM(TRUE, 0);   // redraw flag 
  wn->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmap);


	HTREEITEM htreeitem;
	HTREEITEM h1,h2;
	FILE *fpe;
	char e_id_buf[50],e_code_buf[50],p_id_buf[50];
	char e_name_buf[50],e_abbr_buf[50],a_id_buf[50];
	char m_un_buf[50],c_pr_buf[50];
	char id_buf[7][3];
	int i,j,k,l,n,m;
	long order;
	int flag,flag1;
	char buf1[50];
	int parent,ret;
	char buf2[10];
	char buf[100];
	float ff;
	int tt;

  if (g_come_in_flag == 0){
    g_come_in_flag = 1;
	fpe = fopen("c:\\xxsbgl\\sbqk.txt","rb");
	i = 0;
	flag = 0;
	m_list.InitStorage(4000,50);
	while (flag == 0){
	  ret = get_a_line(fpe,g_e_id[i]);
	  if (ret == -1)
		  break;
	  get_a_line(fpe,g_e_code[i]);
	  get_a_line(fpe,g_p_id[i]);
	  get_a_line(fpe,g_e_name[i]);
	  get_a_line(fpe,g_e_abbr[i]);
	  get_a_line(fpe,g_a_id[i]);
	  get_a_line(fpe,g_m_un[i]);
	  get_a_line(fpe,g_c_pr[i]);
	  get_a_line(fpe,buf2);
	  m_list.AddString(g_e_name[i]);
	  g_order_of_list[i] = i;
	  i ++;
	}
    g_end_sbs = i;
	g_cur_rec = 0;


    g_cur_sb_search_pos = 0;
    g_old_htreeitem = NULL;
	fpe = fopen("c:\\xxsbgl\\sbqk.txt","rb");
	i = 0;
	flag = 0;
	g_end_p = g_begin_p = 0;
	while (flag == 0){
	  ret = get_a_line(fpe,g_e_id[i]);
	  if (ret == -1)
		  break;
	  get_a_line(fpe,g_e_code[i]);
	  get_a_line(fpe,g_p_id[i]);
	  get_a_line(fpe,g_e_name[i]);
	  get_a_line(fpe,g_e_abbr[i]);
	  get_a_line(fpe,g_a_id[i]);
	  get_a_line(fpe,g_m_un[i]);
	  get_a_line(fpe,g_c_pr[i]);
	  get_a_line(fpe,buf2);
	  g_parent[i] = atoi(buf2);
	  if (buf2[0] != '-'){
		  if ((buf2[0] < '0')||(buf2[0] > '9'))
			  j = 0;
	  }
	  order = i;
	  if (g_parent[i] == -1)
        g_htreeitem[i] = m_tree.InsertItem(0,"",0,0,TVIS_BOLD,0xff,order,NULL,TVI_LAST);
	  else
        g_htreeitem[i] = m_tree.InsertItem(0,"",0,0,TVIS_BOLD,0xff,order,g_htreeitem[g_parent[i]],TVI_LAST);
	  m_tree.SetItemText(g_htreeitem[i],g_e_name[i]);
	  i ++;
	}
    g_end_sbs = i;

	fpe = fopen("c:\\xxsbgl\\yszm.dat","rb");
	if (fpe == NULL)
		return;

	fread(buf,1,1,fpe);
	fread(buf,60,1,fpe);
	SetDlgItemText(IDC_sbmc,buf);
	fread(buf,20,1,fpe);
	SetDlgItemText(IDC_gdbh,buf);
	fread(buf,20,1,fpe);
	SetDlgItemText(IDC_yqdm,buf);
	fread(buf,20,1,fpe);
	SetDlgItemText(IDC_scdm,buf);
	fread(buf,10,1,fpe);
	SetDlgItemText(IDC_rkfs,buf);
	fread(buf,20,1,fpe);
	SetDlgItemText(IDC_cjpp,buf);
	fread(buf,40,1,fpe);
	SetDlgItemText(IDC_xhgg,buf);
	fread(&ff,4,1,fpe);
	sprintf(buf,"%8.2f",ff);
	SetDlgItemText(IDC_wpdj,buf);
	fread(&ff,4,1,fpe);
	sprintf(buf,"%8.2f",ff);
	SetDlgItemText(IDC_wpsl,buf);
	fread(&ff,4,1,fpe);
	sprintf(buf,"%8.2f",ff);
	SetDlgItemText(IDC_zje,buf);
	fread(buf,40,1,fpe);
	SetDlgItemText(IDC_ssbm,buf);
	fread(buf,10,1,fpe);
	SetDlgItemText(IDC_jbr,buf);
	fread(buf,60,1,fpe);
	SetDlgItemText(IDC_ghdw,buf);
	fread(&tt,4,1,fpe);
	sprintf(buf,"%d",tt);
	SetDlgItemText(IDC_ygn,buf);
	fread(&tt,4,1,fpe);
	sprintf(buf,"%d",tt);
	SetDlgItemText(IDC_ygy,buf);
	fread(&tt,4,1,fpe);
	sprintf(buf,"%d",tt);
	SetDlgItemText(IDC_ygr,buf);
	fread(&tt,4,1,fpe);
	sprintf(buf,"%d",tt);
	SetDlgItemText(IDC_rkn,buf);
	fread(&tt,4,1,fpe);
	sprintf(buf,"%d",tt);
	SetDlgItemText(IDC_rky,buf);
	fread(&tt,4,1,fpe);
	sprintf(buf,"%d",tt);
	SetDlgItemText(IDC_rkr,buf);
	fclose(fpe);

	g_cur_rec = 0;
	}

}


BEGIN_MESSAGE_MAP(Cxxsbdlg, CDialog)
	//{{AFX_MSG_MAP(Cxxsbdlg)
	ON_EN_CHANGE(IDC_pyjx, OnChangepyjx)
	ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
	ON_NOTIFY(TVN_SELCHANGING, IDC_TREE1, OnSelchangingTree1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cxxsbdlg message handlers

void Cxxsbdlg::OnChangepyjx() 
{
	int i,j,k,flag;
	CString str;
	char buf[40];
	char buf1[50];
	long l;

	m_list.ResetContent();
	i = 0;
	k = 0;
	GetDlgItemText(IDC_pyjx,buf,20);
	l = strlen(buf);
	if (l > 0){
		for (i=0;i<l;i++){
	      if ((buf[i] < 'a')||(buf[i] > 'z')){
		    buf[i] = 0;
			SetDlgItemText(IDC_pyjx,buf);
            Set_to_item_end(this,IDC_pyjx);
		  }
		}
	}
	if (strlen(buf) > 10){
		buf[10] = 0;
		SetDlgItemText(IDC_pyjx,buf);
        Set_to_item_end(this,IDC_pyjx);
    }
    for (i=0;i<g_end_sbs;i++){
		flag = 1;
		for (j=0;j<strlen(buf);j++){
			if (strstr(g_e_abbr[i],buf) != NULL){
				flag = 0;
				break;
			}
		}
	    if (buf[0] == 0){
		    flag = 0;
		}
		if (flag == 0){
			m_list.AddString(g_e_name[i]);
			strcpy(buf1,g_e_name[i]);
			g_order_of_list[k] = i;
			k ++;
			g_last_sel = i;
		}
	}
	
	if (k == 1){
	  SetDlgItemText(IDC_sbmc,buf1);
	  SetDlgItemText(IDC_gdbh,g_a_id[g_last_sel]);
	}
}

void Cxxsbdlg::OnSelchangeList1() 
{
	// TODO: Add your control notification handler code here
	int n;
	char buf[50];

	n = m_list.GetCurSel();
	m_list.GetText(n,buf);
	SetDlgItemText(IDC_pyjx,g_e_abbr[g_order_of_list[n]]);
	SetDlgItemText(IDC_sbmc,buf);
	SetDlgItemText(IDC_gdbh,g_a_id[g_order_of_list[n]]);
	g_last_sel = n;
}

void Cxxsbdlg::OnOK() 
{
	// TODO: Add extra validation here
	
	g_xzsb_flag = 1;
	free_sbtree(m_tree);
    CDialog::OnOK();
}

void Cxxsbdlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	
	HTREEITEM htreeitem;
	int i,j;
	char buf[100];
	CString str;

	htreeitem = m_tree.GetSelectedItem();
	if (g_old_htreeitem != htreeitem){
	   if (g_old_htreeitem != NULL){
		 m_tree.SetItemState(g_old_htreeitem,0,0xffff);
	   }
	}

    str = m_tree.GetItemText(htreeitem);
	strcpy(buf,str.GetBuffer(100));
	for (j=0;j<g_end_sbs;j++){
		if (strcmp(g_e_name[j],buf) == 0)
			i = j;
    }
	SetDlgItemText(IDC_pyjx,g_e_abbr[i]);
	SetDlgItemText(IDC_sbmc,g_e_name[i]);
	SetDlgItemText(IDC_gdbh,g_a_id[i]);

	*pResult = 0;
}

void Cxxsbdlg::OnSelchangingTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	*pResult = 0;
}

⌨️ 快捷键说明

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