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

📄 bjqkdlg.cpp

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

#include "stdafx.h"
#include "xxgl.h"
#include "bjqkdlg.h"
#include "bjdlg.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

Cbjqkdlg::Cbjqkdlg(CWnd* pParent /*=NULL*/)
	: CDialog(Cbjqkdlg::IDD, pParent)
{

	//{{AFX_DATA_INIT(Cbjqkdlg)
	//}}AFX_DATA_INIT
	FILE *fpe;
	char buf[200];
	int n,i;

	fpe = fopen("c:\\xxsbgl\\bjqk.txt","r");
	if (fpe != NULL){
		fgets(buf,200,fpe);
		buf[strlen(buf)-1] = 0;
		n = atoi(buf);
		g_njs = n;
		for (i=0;i<n;i++){
		  fgets(buf,200,fpe);
		  buf[strlen(buf)-1] = 0;
          strcpy(g_nj[i],buf);
		  fgets(buf,200,fpe);
		  buf[strlen(buf)-1] = 0;
		  strcpy(g_bs[i],buf);
		  fgets(buf,200,fpe);
		  buf[strlen(buf)-1] = 0;
		  strcpy(g_rs[i],buf);
		}
        fclose(fpe);
    }
	else
		g_njs = 0;
}


void Cbjqkdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cbjqkdlg)
	DDX_Control(pDX, IDC_bj, m_bj);
	//}}AFX_DATA_MAP
  
	CBitmap *bitmapadd;
    CBitmap *bitmapadd1;
    CBitmap *bitmapadd2;
    CBitmap *bitmapadd3;

	HBITMAP hbitmapadd;
    HBITMAP hbitmapadd1;
	HBITMAP hbitmapadd2;
	HBITMAP hbitmapadd3;


    bitmapadd= new CBitmap();
    bitmapadd1= new CBitmap();
	bitmapadd2= new CBitmap();
	bitmapadd3= new CBitmap();


    bitmapadd->LoadBitmap(IDB_zj);
	bitmapadd1->LoadBitmap(IDB_sc);
	bitmapadd2->LoadBitmap(IDB_xg);
    bitmapadd3->LoadBitmap(IDB_tc);

    hbitmapadd= (*bitmapadd).operator HBITMAP();
	hbitmapadd1= (*bitmapadd1).operator HBITMAP();
	hbitmapadd2= (*bitmapadd2).operator HBITMAP();
	hbitmapadd3= (*bitmapadd3).operator HBITMAP();
    
	
	
	CWnd *wnadd;
	CWnd *wnadd1;
	CWnd *wnadd2;
	CWnd *wnadd3;


    wnadd = GetDlgItem(IDC_ADD);
	wnadd1 = GetDlgItem(IDC_DEL);
	wnadd2 = GetDlgItem(IDC_MOD);
	wnadd3 = GetDlgItem(IDCANCEL);



    WPARAM wParam;
    LPARAM lParam;
    wParam =  (WPARAM) LOWORD(BS_LEFT | BS_BITMAP); // style 
    lParam =  MAKELPARAM(TRUE, 0);   // redraw flag 
    wnadd->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd);
	wnadd1->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd1);
	wnadd2->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd2);
	wnadd3->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd3);

	char buf[200];
	char s1[40];
	char s2[40];
	char s3[10];
	int i,j;
	long l;

	m_bj.SetRows(g_njs+2);
    m_bj.SetRow(0L);
	m_bj.SetCol(0L);
	m_bj.SetText("年级");
	m_bj.SetCol(1L);
	m_bj.SetText("班数");
	m_bj.SetCol(2L);
	m_bj.SetText("人数");
	for (i=0;i<g_njs;i++){
      l = i + 1;
      m_bj.SetRow(l);
	  m_bj.SetCol(0L);
	  m_bj.SetText(g_nj[i]);
	  m_bj.SetCol(1L);
	  m_bj.SetText(g_bs[i]);
	  m_bj.SetCol(2L);
	  m_bj.SetText(g_rs[i]);
	}
}


BEGIN_MESSAGE_MAP(Cbjqkdlg, CDialog)
	//{{AFX_MSG_MAP(Cbjqkdlg)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_BN_CLICKED(IDC_MOD, OnMod)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cbjqkdlg message handlers

void Cbjqkdlg::OnAdd() 
{
	// TODO: Add your control notification handler code here
	Cbjdlg dlg;
	char buf[200];
	char s1[40];
	char s2[40];
	char s3[10];
	int i,j;
	long l;

	strcpy(g_m_nj,"");
	g_m_bs = 0;
	g_m_rs = 0;
	dlg.m_bs = g_m_bs;
	dlg.m_rs = g_m_rs;
	if (dlg.DoModal() == IDOK){
      strcpy(s1,g_m_nj);
	  itoa(dlg.m_bs,s2,10);
	  itoa(dlg.m_rs,s3,10);
	  strcpy(g_nj[g_njs],s1);
	  strcpy(g_bs[g_njs],s2);
	  strcpy(g_rs[g_njs],s3);
      l = g_njs + 1;
      m_bj.SetRows(l+1);
      m_bj.SetRow(l);
	  m_bj.SetCol(0L);
	  m_bj.SetText(g_nj[g_njs]);
	  m_bj.SetCol(1L);
	  m_bj.SetText(g_bs[g_njs]);
	  m_bj.SetCol(2L);
	  m_bj.SetText(g_rs[g_njs]);

	  g_njs ++;
    }
}

void Cbjqkdlg::OnDel() 
{
	// TODO: Add your control notification handler code here
    long l,l1;
	int i;
	CString str;

	l = m_bj.GetRowSel();
    for (i=l-1;i<g_njs-1;i++){
		strcpy(g_nj[i],g_nj[i+1]);
		strcpy(g_bs[i],g_bs[i+1]);
		strcpy(g_rs[i],g_rs[i+1]);
		l1 = i + 2;
		m_bj.SetRow(l1);
		m_bj.SetCol(0L);
		str = m_bj.GetText();
		m_bj.SetRow(l1-1);
		m_bj.SetCol(0L);
        m_bj.SetText(str.GetBuffer(10));
		m_bj.SetRow(l1);
		m_bj.SetCol(1L);
		str = m_bj.GetText();
		m_bj.SetRow(l1-1);
		m_bj.SetCol(1L);
        m_bj.SetText(str.GetBuffer(10));
		m_bj.SetRow(l1);
		m_bj.SetCol(2L);
		str = m_bj.GetText();
		m_bj.SetRow(l1-1);
		m_bj.SetCol(2L);
        m_bj.SetText(str.GetBuffer(10));
    }
	l1 = g_njs;
    m_bj.SetRow(l1);
	m_bj.SetCol(0L);
    m_bj.SetText("");
	m_bj.SetCol(1L);
    m_bj.SetText("");
	m_bj.SetCol(2L);
    m_bj.SetText("");
    
	if (g_njs > 0)
	  g_njs --;
}

void Cbjqkdlg::OnMod() 
{
	// TODO: Add your control notification handler code here

	Cbjdlg dlg;
	char buf[200];
	int i,j,l,cs;
	CString str;
	char s1[10],s2[10],s3[10];

	l = m_bj.GetRowSel();
    m_bj.SetRow(l);
	m_bj.SetCol(0L);
	str = m_bj.GetText();
    strcpy(g_m_nj,str.GetBuffer(10));
	m_bj.SetCol(1L);
	str = m_bj.GetText();
    strcpy(buf,str.GetBuffer(10));
    g_m_bs = atoi(buf);
	m_bj.SetCol(2L);
	str = m_bj.GetText();
    strcpy(buf,str.GetBuffer(10));
    g_m_rs = atoi(buf);

	dlg.m_bs = g_m_bs;
	dlg.m_rs = g_m_rs;
	if (dlg.DoModal() == IDOK){
      strcpy(s1,g_m_nj);
	  itoa(dlg.m_bs,s2,10);
	  itoa(dlg.m_rs,s3,10);
      m_bj.SetRow(l);
	  m_bj.SetCol(0L);
	  m_bj.SetText(s1);
	  m_bj.SetCol(1L);
	  m_bj.SetText(s2);
	  m_bj.SetCol(2L);
	  m_bj.SetText(s3);
	  strcpy(g_nj[l-1],s1);
	  strcpy(g_bs[l-1],s2);
	  strcpy(g_rs[l-1],s3);
    }	
}

void Cbjqkdlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	int i,j;
	char buf[200];
	FILE *fpe;

	fpe = fopen("c:\\xxsbgl\\bjqk.txt","wb");
	fprintf(fpe,"%d\r\n",g_njs);
	for (i=0;i<g_njs;i++){
	    fprintf(fpe,"%s\r\n",g_nj[i]);
	    fprintf(fpe,"%s\r\n",g_bs[i]);
	    fprintf(fpe,"%s\r\n",g_rs[i]);
	}
    fclose(fpe);
	
	CDialog::OnCancel();
}

BEGIN_EVENTSINK_MAP(Cbjqkdlg, CDialog)
    //{{AFX_EVENTSINK_MAP(Cbjqkdlg)
	ON_EVENT(Cbjqkdlg, IDC_bj, -601 /* DblClick */, OnDblClickbj, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void Cbjqkdlg::OnDblClickbj() 
{
	// TODO: Add your control notification handler code here
  OnMod();	
}

⌨️ 快捷键说明

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