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

📄 yszmxzsbdlg.cpp

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

#include <atlbase.h>
#include <atlctl.h>
#include "stdafx.h"
#include "xxgl.h"
#include "yszmxzsbdlg.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

static int cur_focus;

Cyszmxzsbdlg::Cyszmxzsbdlg(CWnd* pParent /*=NULL*/)
	: CDialog(Cyszmxzsbdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cyszmxzsbdlg)
	//}}AFX_DATA_INIT
	g_yszm_sel_sb = 0;
	out_flag = 0;
	cur_focus = 0;
}


void Cyszmxzsbdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cyszmxzsbdlg)
	DDX_Control(pDX, IDC_pyjx, m_pyjx);
	DDX_Control(pDX, IDC_GRID1, m_grid);
	//}}AFX_DATA_MAP

  CBitmap *bitmap;
  CBitmap *bitmap1;
  
  HBITMAP hbitmap;
  HBITMAP hbitmap1;
  
  bitmap = new CBitmap();
  bitmap1 = new CBitmap();


  bitmap->LoadBitmap(IDB_qr);
  bitmap1->LoadBitmap(IDB_qx);


  hbitmap = (*bitmap).operator HBITMAP();
  hbitmap1 = (*bitmap1).operator HBITMAP();

  
  CWnd *wn;
  CWnd *wn1;


  wn = GetDlgItem(IDOK);
  wn1 = GetDlgItem(IDCANCEL);
 // wn2 = GetDlgItem(IDOK3);

  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);
  wn1->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmap1);

	if (out_flag == 0){
	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];
	char bb[100];
	float ff;
	int tt;
	long ll;

	fpe = fopen("c:\\xxsbgl\\sbqk.txt","rb");
	i = 0;
	flag = 0;
	tt = 0;
	m_grid.SetColWidth(0L,12000);
	m_grid.SetRows(1000L);
	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] != '-'){
        strcpy(bb,g_e_name[i]);
		strcat(bb,"(");
		strcat(bb,g_e_name[g_parent[i]]);
		strcat(bb,")");
        tt ++;
//	    m_list.AddString(bb);
	  }
	  else{
        tt ++;
//	    m_list.AddString(g_e_name[i]);
      }

      
	  g_order_of_list[i] = i;
	  i ++;
	}
    g_end_sbs = i;
	g_cur_rec = 0;
	fclose(fpe);
/*
	fpe = fopen("c:\\xxsbgl\\sbqk.txt","rb");
    ll = tt + 1;
	m_grid.SetRows(ll);
	flag = 0;
	tt = 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] != '-'){
        strcpy(bb,g_e_name[i]);
		strcat(bb,"(");
		strcat(bb,g_e_name[g_parent[i]]);
		strcat(bb,")");
		ll = tt;
		m_grid.SetRow(ll);
		m_grid.SetCol(0L);
		m_grid.SetText(bb);
		tt ++;
//	    m_list.AddString(bb);
	  }
	  else{
		ll = tt;
		m_grid.SetRow(ll);
		m_grid.SetCol(0L);
		m_grid.SetText(g_e_name[i]);
		tt ++;
//	    m_list.AddString(g_e_name[i]);
      }

      
	}
	fclose(fpe);

    g_cur_sb_search_pos = 0;
	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);
	  i ++;
	}
    g_end_sbs = i;
	fclose(fpe);
*/
	g_cur_rec = 0;
	if (g_yszm_xzsb_flag == 1){
      g_yszm_xzsb_flag = 0;
	  m_pyjx.SetText("");
	  m_pyjx.SetSelText(g_yszm_xzsb_pass_buf);
      OnChangepyjx();
	}
/*
	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);

	if (g_gdbh_sel_flag == 1){
		SetDlgItemText(IDC_ssbjm,"固定编号:");
    }
*/
    }
}


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

/////////////////////////////////////////////////////////////////////////////
// Cyszmxzsbdlg message handlers

void Cyszmxzsbdlg::OnOK() 
{
	int n,i;
	long nl;

//    if (cur_focus == 0)
//		return ;
	nl = m_grid.GetRows();
	if (nl == 1){
      g_yszm_sel_sb = g_order_of_list[0];
    }
	else{
      nl = m_grid.GetRowSel();
	  if (nl < 0){
		  MessageBox("对不起,您没有选择设备,不能退出.",MB_OK);
	      CWnd *wnd;
	      wnd = GetDlgItem(IDC_pyjx);
	      wnd->SetFocus();

		  return ;
      }
	  g_yszm_sel_sb = g_order_of_list[nl];
    }
	if (g_xzxzsb_flag == 1){
	  for (i=0;i<g_end_sbs;i++){
		if (g_parent[i] == g_yszm_sel_sb){
          if ((strstr(g_e_name[g_yszm_sel_sb],"其他") == NULL)&&
			  (strstr(g_e_name[g_yszm_sel_sb],"其它") == NULL)){
		    MessageBox("对不起,您选择的是设备类,而不是设备,不能退出.",MB_OK);
	        CWnd *wnd;
	        wnd = GetDlgItem(IDC_pyjx);
	        wnd->SetFocus();

		    return ;
		  }
        }
	  }
	}
	out_flag = 1;
	CDialog::OnOK();
}

void Cyszmxzsbdlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	out_flag = 1;
	CDialog::OnCancel();
}

BEGIN_EVENTSINK_MAP(Cyszmxzsbdlg, CDialog)
    //{{AFX_EVENTSINK_MAP(Cyszmxzsbdlg)
	ON_EVENT(Cyszmxzsbdlg, IDC_pyjx, -603 /* KeyPress */, OnKeyPresspyjx, VTS_PI2)
	ON_EVENT(Cyszmxzsbdlg, IDC_pyjx, -602 /* KeyDown */, OnKeyDownpyjx, VTS_PI2 VTS_I2)
	ON_EVENT(Cyszmxzsbdlg, IDC_pyjx, 1 /* Change */, OnChangepyjx, VTS_NONE)
	ON_EVENT(Cyszmxzsbdlg, IDC_GRID1, -602 /* KeyDown */, OnKeyDownGrid1, VTS_PI2 VTS_I2)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()


void Cyszmxzsbdlg::OnKeyPresspyjx(short FAR* KeyAscii) 
{
	// TODO: Add your control notification handler code here
	int i;

	i = 0;
}

void Cyszmxzsbdlg::OnKeyDownpyjx(short FAR* KeyCode, short Shift) 
{
	// TODO: Add your control notification handler code here
    short key;
	int cur;
	long nl;

	key = *KeyCode;

	if (key == 40){
	  m_grid.SetFocus();
    }
	else if (key == 38){
	  m_grid.SetFocus();
    }
	else if (key == 13){
//		OnOK();
    }
}

void Cyszmxzsbdlg::OnChangepyjx() 
{
	// TODO: Add your control notification handler code here
	int i,j,k,l,p,flag,sel_flag;
	long nl;
	CString str;
	char bb[200];
	char buf[40];
	char buf1[50];
	
	m_grid.SetRows(0L);
	m_grid.SetRows(1000L);
    switch_to_english_mode(this);
	GetDlgItemText(IDC_pyjx,buf,20);
	l = strlen(buf);
	if (l > 0){
		for (i=0;i<l;i++){
	      if (g_gdbh_sel_flag == 1){
	        if ((buf[i] < '0')||(buf[i] > '9')){
		      buf[i] = 0;
			  m_pyjx.SetText("");
			  m_pyjx.SetSelText(buf);
			}
          }
		  else{
	        if ((buf[i] >= 'A')&&(buf[i] <= 'Z')){
			  buf[i] -= 'A';
			  buf[i] += 'a';
			}
	        if ((buf[i] < 'a')||(buf[i] > 'z')){
		      buf[i] = 0;
			  m_pyjx.SetText("");
			  m_pyjx.SetSelText(buf);
			}
		  }
		}
	}
	if (g_gdbh_sel_flag == 1){
	  if (strlen(buf) > 6){
		buf[6] = 0;
		m_pyjx.SetText("");
		m_pyjx.SetSelText(buf);
	  }
    }
	else{
	  if (strlen(buf) > 10){
		buf[10] = 0;
		m_pyjx.SetText("");
		m_pyjx.SetSelText(buf);
	  }
	}
//	m_list.ResetContent();
    nl = 0;
	i = 0;
	k = 0;
	GetDlgItemText(IDC_pyjx,str);
	strcpy(buf,str.GetBuffer(40));
	if (g_gdbh_sel_flag == 0){
	  for (i=0;i<l;i++){
	      if ((buf[i] >= 'A')&&(buf[i] <= 'Z')){
			  buf[i] -= 'A';
			  buf[i] += 'a';
          }
	  }
    }
	sel_flag = 0;
    for (i=0;i<g_end_sbs;i++){
	  if (g_gdbh_sel_flag == 1){
		flag = 1;
		for (j=0;j<strlen(buf);j++){
			if (strstr(g_a_id[i],buf) == g_a_id[i]){
				flag = 0;
				break;
			}
		}
	    if (buf[0] == 0){
		    flag = 1;
		}
		if (flag == 0){
			if (g_parent[i] == -1){
			  m_grid.SetCol(0L);
			  m_grid.SetRow(nl);
			  m_grid.SetText(g_e_name[i]);
              nl ++;
//			  m_list.AddString(g_e_name[i]);
			}
			else{
              strcpy(bb,g_e_name[i]);
              if (strlen(g_e_name[i]) < 30){
				  for (j=0;j<30-strlen(g_e_name[i]);j++)
					  strcat(bb," ");
              }
		      strcat(bb,g_e_name[g_parent[i]]);
              p = g_parent[i];
			  if (g_parent[p] != -1){
                if (strlen(g_e_name[p]) < 20){
				  for (j=0;j<20-strlen(g_e_name[p]);j++)
					  strcat(bb," ");
				}
		        strcat(bb,"  ");
                
		        strcat(bb,g_e_name[g_parent[p]]);
				p = g_parent[p];
			    if (g_parent[p] != -1){
                  if (strlen(g_e_name[p]) < 20){
				    for (j=0;j<20-strlen(g_e_name[p]);j++)
					  strcat(bb," ");
				  }
		          strcat(bb,"  ");
		          strcat(bb,g_e_name[g_parent[p]]);
                }
              }
			  m_grid.SetCol(0L);
			  m_grid.SetRow(nl);
			  m_grid.SetText(bb);
              nl ++;
//			  m_list.AddString(bb);
            }
			strcpy(buf1,g_e_name[i]);
			g_order_of_list[k] = i;
			k ++;
			g_last_sel = i;
		}
      }
	  else{
		flag = 1;
		for (j=0;j<strlen(buf);j++){
			if (strstr(g_e_abbr[i],buf) == g_e_abbr[i]){
				flag = 0;
				break;
			}
		}
	    if (buf[0] == 0){
		    flag = 1;
		}
		if (flag == 0){
			sel_flag = 1;
			if (g_parent[i] == -1){
			  m_grid.SetCol(0L);
			  m_grid.SetRow(nl);
			  m_grid.SetText(g_e_name[i]);
              nl ++;
//			  m_list.AddString(g_e_name[i]);
			}
			else{
              strcpy(bb,g_e_name[i]);
              if (strlen(g_e_name[i]) < 30){
				  for (j=0;j<30-strlen(g_e_name[i]);j++)
					  strcat(bb," ");
              }
		      strcat(bb,g_e_name[g_parent[i]]);
              p = g_parent[i];
			  if (g_parent[p] != -1){
                if (strlen(g_e_name[p]) < 20){
				  for (j=0;j<20-strlen(g_e_name[p]);j++)
					  strcat(bb," ");
				}
		        strcat(bb,"  ");
                
		        strcat(bb,g_e_name[g_parent[p]]);
				p = g_parent[p];
			    if (g_parent[p] != -1){
                  if (strlen(g_e_name[p]) < 20){
				    for (j=0;j<20-strlen(g_e_name[p]);j++)
					  strcat(bb," ");
				  }
		          strcat(bb,"  ");
		          strcat(bb,g_e_name[g_parent[p]]);
                }
              }
			  m_grid.SetCol(0L);
			  m_grid.SetRow(nl);
			  m_grid.SetText(bb);
              nl ++;
//			  m_list.AddString(bb);
            }
			strcpy(buf1,g_e_name[i]);
			g_order_of_list[k] = i;
			k ++;
			g_last_sel = i;
		}
	  }
	}
    if (sel_flag == 0){
      for (i=0;i<g_end_sbs;i++){
	    if (g_gdbh_sel_flag == 0){
		  flag = 1;
		  for (j=0;j<strlen(buf);j++){
			if ((strstr(g_e_name[i],"固定资产其他") != NULL)||
			    (strstr(g_e_name[i],"固定资产其它") != NULL)||
				(strstr(g_e_name[i],"低值品其他") != NULL)||
			    (strstr(g_e_name[i],"低值品其它") != NULL)){
				flag = 0;
				break;
			}
		  }
	      if (buf[0] == 0){
		    flag = 1;
		  }
		  if (flag == 0){
			sel_flag = 1;
			if (g_parent[i] == -1){
			  m_grid.SetCol(0L);
			  m_grid.SetRow(nl);
			  m_grid.SetText(g_e_name[i]);
              nl ++;
//			  m_list.AddString(g_e_name[i]);
			}
			else{
              strcpy(bb,g_e_name[i]);
              if (strlen(g_e_name[i]) < 30){
				  for (j=0;j<30-strlen(g_e_name[i]);j++)
					  strcat(bb," ");
              }
		      strcat(bb,g_e_name[g_parent[i]]);
              p = g_parent[i];
			  if (g_parent[p] != -1){
                if (strlen(g_e_name[p]) < 20){
				  for (j=0;j<20-strlen(g_e_name[p]);j++)
					  strcat(bb," ");
				}
		        strcat(bb,"  ");
                
		        strcat(bb,g_e_name[g_parent[p]]);
				p = g_parent[p];
			    if (g_parent[p] != -1){
                  if (strlen(g_e_name[p]) < 20){
				    for (j=0;j<20-strlen(g_e_name[p]);j++)
					  strcat(bb," ");
				  }
		          strcat(bb,"  ");
		          strcat(bb,g_e_name[g_parent[p]]);
                }
              }
			  m_grid.SetCol(0L);
			  m_grid.SetRow(nl);
			  m_grid.SetText(bb);
              nl ++;
//			  m_list.AddString(bb);
            }
			strcpy(buf1,g_e_name[i]);
			g_order_of_list[k] = i;
			k ++;
			g_last_sel = i;
		  }

		}
	  }
	}
	m_grid.SetRows(nl);
	m_grid.SetRow(0L);
}


void Cyszmxzsbdlg::OnKeyDownGrid1(short FAR* KeyCode, short Shift) 
{
	
}

⌨️ 快捷键说明

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