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

📄 xzbmdlg.cpp

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

#include "stdafx.h"
#include "xxgl.h"
#include "xzbmdlg.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 cur_focus;

Cxzbmdlg::Cxzbmdlg(CWnd* pParent /*=NULL*/)
	: CDialog(Cxzbmdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cxzbmdlg)
	m_xzbm = _T("");
	m_pyjx = _T("");
	//}}AFX_DATA_INIT
	cur_focus = 0;
}


void Cxzbmdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cxzbmdlg)
	DDX_Control(pDX, IDC_gdbm, m_gdbm);
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Text(pDX, IDC_xzbm, m_xzbm);
	DDX_Text(pDX, IDC_pyjx, m_pyjx);
	//}}AFX_DATA_MAP
  CBitmap *bitmap;
  CBitmap *bitmap1;
  CBitmap *bitmap2;

  HBITMAP hbitmap;
  HBITMAP hbitmap1;
  HBITMAP hbitmap2;
  
  bitmap = new CBitmap();
  bitmap1 = new CBitmap();
  bitmap2 = new CBitmap();


  bitmap->LoadBitmap(IDB_zj);
  bitmap1->LoadBitmap(IDB_sc);
  bitmap2->LoadBitmap(IDB_tc);


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

  
  CWnd *wn;
  CWnd *wn1;
  CWnd *wn2;


  wn = GetDlgItem(IDADD);
  wn1 = GetDlgItem(IDDEL);
  wn2 = 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);
  wn2->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmap2);




	FILE *fpe;
	char buf[100];
	int ret;

	fpe = fopen("c:\\xxsbgl\\bmsz.txt","rb");
	g_end_bmsz = 0;
	if (fpe != NULL){
	  ret = fscanf(fpe,"%s\n",buf);
	  while (ret > 0){
		if (strlen(buf) != 0){
          strcpy(g_bmsz_name[g_end_bmsz],buf);
          g_end_bmsz ++;
        }
	    ret = fscanf(fpe,"%s\n",buf);
	  }
	  fclose(fpe);
    }

	int i,j;
	i = j = 0;
	fpe = fopen("c:\\xxsbgl\\bmpydyb1.dat","rb");
	if (fpe != NULL){
	  ret = fscanf(fpe,"%s\n",buf);
	  while (ret > 0){
		if (strlen(buf) != 0){
		  if (i % 2 == 1){
            strcpy(g_bmsz_pyjx[j],buf);
		    j ++;
		  }
		  i ++;
        }
	    ret = fscanf(fpe,"%s\n",buf);
	  }
	  fclose(fpe);
    }

    m_list.InitStorage(200,100);
	for (i=0;i<g_end_bmsz;i++){
		strcpy(buf,g_bmsz_name[i]);
		strcat(buf,"    ");
		strcat(buf,g_bmsz_pyjx[i]);
		m_list.AddString(buf);
    }

	m_gdbm.InitStorage(40,100);
	m_gdbm.AddString("物理实验室");
	m_gdbm.AddString("化学实验室");
	m_gdbm.AddString("生物实验室");
	m_gdbm.AddString("自然实验室");
	m_gdbm.AddString("普通教室");
	m_gdbm.AddString("语音教室");
	m_gdbm.AddString("电化教室");
	m_gdbm.AddString("图书馆");
	m_gdbm.AddString("教师阅览室");
	m_gdbm.AddString("学生阅览室");
	m_gdbm.AddString("教师资料室");
	m_gdbm.AddString("专用教室");
	m_gdbm.AddString("校长室");
	m_gdbm.AddString("食堂");
	m_gdbm.AddString("体育场馆");
	m_gdbm.AddString("多功能厅");
	m_gdbm.AddString("医务室");
	m_gdbm.AddString("演播室");
	m_gdbm.AddString("音乐教室");
	m_gdbm.AddString("美术教室");
	m_gdbm.AddString("科技教室");
	m_gdbm.AddString("无线电教室");
	m_gdbm.AddString("劳动技术教室");
	m_gdbm.AddString("化学药品教室");
	m_gdbm.AddString("仪器装备室");
	m_gdbm.AddString("生物标本室");
	m_gdbm.AddString("形体教室");
	m_gdbm.AddString("书法教室");
	m_gdbm.AddString("职教专用教室");
	m_gdbm.AddString("总务");
	m_gdbm.AddString("财务");
	m_gdbm.AddString("仓库");
	m_gdbm.AddString("办公室");
	m_gdbm.AddString("计算机室");
	m_gdbm.AddString("会议室");
	m_gdbm.AddString("其他");
}


BEGIN_MESSAGE_MAP(Cxzbmdlg, CDialog)
	//{{AFX_MSG_MAP(Cxzbmdlg)
	ON_BN_CLICKED(IDADD, OnAdd)
	ON_BN_CLICKED(IDDEL, OnDel)
	ON_EN_SETFOCUS(IDC_xzbm, OnSetfocusxzbm)
	ON_EN_SETFOCUS(IDC_pyjx, OnSetfocuspyjx)
	ON_EN_SETFOCUS(IDC_focus, OnSetfocusfocus)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cxzbmdlg message handlers

void Cxzbmdlg::OnAdd() 
{
	// TODO: Add your control notification handler code here
    int i,n;
	char buf[100];
	char buf2[100];
	char buf1[10];
	CString str;
	FILE *fpe;

	n = m_list.GetCount();
	if (n < 200){
		GetDlgItemText(IDC_xzbm,str);
		strcpy(buf,str.GetBuffer(100));
		if (strlen(buf) == 0){
			return;
        }
		GetDlgItemText(IDC_pyjx,str);
		strcpy(buf1,str.GetBuffer(10));
		if (strlen(buf1) == 0){
			MessageBox("对不起,您没有输入拼音简写。","",MB_OK);
			CWnd *wd;
			wd = GetDlgItem(IDC_pyjx);
			wd->SetFocus();
			return;
        }
		strcpy(buf2,buf);
		strcat(buf2,"    ");
		strcat(buf2,buf1);
		m_list.AddString(buf2);
        strcpy(g_bmsz_name[g_end_bmsz],buf);
        strcpy(g_bmsz_pyjx[g_end_bmsz],buf1);
        g_end_bmsz ++;
	    fpe = fopen("c:\\xxsbgl\\bmsz.txt","a+b");
		fprintf(fpe,"%s\n",buf);
        fclose(fpe);
	    fpe = fopen("c:\\xxsbgl\\bmpydyb1.dat","a+b");
		fprintf(fpe,"%s\n",buf);
		fprintf(fpe,"%s\n",buf1);
        fclose(fpe);
        SetDlgItemText(IDC_xzbm,"");
        SetDlgItemText(IDC_pyjx,"");
	    CWnd *wnd;
	    wnd = GetDlgItem(IDC_xzbm);
	    wnd->SetFocus();
    }
	else{
		MessageBox("对不起系统允许增加的部门只有200种.",MB_OK);
		return;
	}
	
}

void Cxzbmdlg::OnDel() 
{
	// TODO: Add your control notification handler code here
    int i,j,n,s;
	char buf[100];
	CString str;
	FILE *fpe;

	n = m_list.GetCount();
	s = m_list.GetCurSel();
	if (s <= n){
	  m_list.GetText(s,buf);
	  j = -1;
	  for (i=0;i<strlen(buf);i++){
		  if (buf[i] == ' ')
			  buf[i] = 0;
	  }
	  for (i=0;i<g_end_bmsz;i++){
		  if (strcmp(g_bmsz_name[i],buf) == 0){
			  j = i;
			  break;
          }
	  }
	  if (j != -1){
		  for (i=j;i<g_end_bmsz-1;i++){
			  strcpy(g_bmsz_name[i],g_bmsz_name[i+1]);
			  strcpy(g_bmsz_pyjx[i],g_bmsz_pyjx[i+1]);
          }
		  g_end_bmsz --;
          FILE *fpe;
	      fpe = fopen("c:\\xxsbgl\\bmsz.txt","wb");
		  for (i=0;i<g_end_bmsz;i++)
		    fprintf(fpe,"%s\n",g_bmsz_name[i]);
          fclose(fpe);
	      fpe = fopen("c:\\xxsbgl\\bmpydyb1.dat","wb");
		  for (i=0;i<g_end_bmsz;i++){
		    fprintf(fpe,"%s\n",g_bmsz_name[i]);
		    fprintf(fpe,"%s\n",g_bmsz_pyjx[i]);
		  }
          fclose(fpe);
          m_list.ResetContent();
		  for (i=0;i<g_end_bmsz;i++){
            strcpy(buf,g_bmsz_name[i]);
			strcat(buf,"  ");
            strcat(buf,g_bmsz_pyjx[i]);
            m_list.AddString(buf);
          }
      }
	  if (g_end_bmsz > 0)
		  m_list.SetCurSel(0);
    }
}

void Cxzbmdlg::OnSetfocusxzbm() 
{
	CWnd *wnd;

	wnd = GetDlgItem(IDC_xzbm);
	switch_to_chinese_mode(wnd);		
	cur_focus = 1;
}

void Cxzbmdlg::OnSetfocuspyjx() 
{
	CWnd *wnd;

	wnd = GetDlgItem(IDC_pyjx);
	switch_to_english_mode(wnd);		
	cur_focus = 2;
}

void Cxzbmdlg::OnOK() 
{
   CWnd *wd_xzbm;
   CWnd *wd_pyjx;
   CWnd *wd_add;

   wd_xzbm = GetDlgItem(IDC_xzbm);
   wd_pyjx = GetDlgItem(IDC_pyjx);
   wd_add = GetDlgItem(IDADD);
   if (cur_focus == 1){
	   wd_pyjx->SetFocus();
	   cur_focus = 2;
	   return ;
   }
   if (cur_focus == 2){
	   wd_add->SetFocus();
	   cur_focus = 3;
	   return ;
   }

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

void Cxzbmdlg::OnSetfocusfocus() 
{
   CWnd *wd;
	
   wd = GetDlgItem(IDC_xzbm);
   wd->SetFocus();
}

void Cxzbmdlg::OnCancel() 
{
	
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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