📄 sdgdbhdlg.cpp
字号:
// sdgdbhdlg.cpp : implementation file
//
#include "stdafx.h"
#include "xxgl.h"
#include "sdgdbhdlg.h"
#include "yszmxzsbdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Csdgdbhdlg dialog
extern char g_id_buf[8000][7][3];
extern int end_g_id_buf;
extern char g_e_id[8000][15];
extern char g_e_code[8000][9];
extern char g_p_id[8000][9];
extern char g_e_name[8000][41];
extern char g_e_abbr[8000][11];
extern char g_a_id[8000][7];
extern char g_m_un[8000][9];
extern char g_c_pr[8000][20];
extern int g_end_sbs;
extern int g_parent[8000];
extern HTREEITEM g_htreeitem[8000];
extern HTREEITEM g_old_htreeitem;
extern int g_come_in_flag;
extern char g_f_buffer[20000];
extern int g_end_p;
extern int g_begin_p;
extern int g_cur_sb_search_pos;
extern int g_cur_rec;
extern int g_xzsb_flag;
extern int g_come_in_flag;
extern int g_last_sel;
extern int g_order_of_list[4000];
extern long g_end_of_yszm;
extern int g_yszm_sel_sb;
extern char g_rkfs_name[20][40];
extern int g_end_rkfs;
extern char g_yszm_xzsb_pass_buf[10];
extern int g_yszm_xzsb_flag;
extern int g_yszm_end_xinsb;
extern int g_xzsb_flag;
extern int g_lock_count_flag;
static int sel_flag;
static int out_flag;
int get_a_line(FILE *fpe,char buf[]);
void yszm_load_sbs(CTreeCtrl &m_tree);
switch_to_english_mode(CWnd *wnd);
switch_to_chinese_mode(CWnd *wnd);
Set_to_item_end(CWnd *wd,int id);
void load_sbtree(CTreeCtrl &m_tree);
void free_sbtree(CTreeCtrl &m_tree);
Csdgdbhdlg::Csdgdbhdlg(CWnd* pParent /*=NULL*/)
: CDialog(Csdgdbhdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(Csdgdbhdlg)
m_gdbh = _T("");
m_pjyx = _T("");
m_sbmc = _T("");
m_scdm = _T("");
m_yqdm = _T("");
//}}AFX_DATA_INIT
sel_flag = 0;
out_flag = 0;
}
void Csdgdbhdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Csdgdbhdlg)
DDX_Control(pDX, IDC_TREE1, m_tree);
DDX_Text(pDX, IDC_gdbh, m_gdbh);
DDX_Text(pDX, IDC_pyjx, m_pjyx);
DDX_Text(pDX, IDC_sbmc, m_sbmc);
DDX_Text(pDX, IDC_scdm, m_scdm);
DDX_Text(pDX, IDC_yqdm, m_yqdm);
//}}AFX_DATA_MAP
if (out_flag == 0)
yszm_load_sbs(m_tree);
else
free_sbtree(m_tree);
}
BEGIN_MESSAGE_MAP(Csdgdbhdlg, CDialog)
//{{AFX_MSG_MAP(Csdgdbhdlg)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
ON_EN_CHANGE(IDC_pyjx, OnChangepyjx)
ON_EN_SETFOCUS(IDC_pyjx, OnSetfocuspyjx)
ON_EN_CHANGE(IDC_sbmc, OnChangesbmc)
ON_NOTIFY(TVN_ITEMEXPANDED, IDC_TREE1, OnItemexpandedTree1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Csdgdbhdlg message handlers
void Csdgdbhdlg::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;
if (out_flag == 0){
htreeitem = m_tree.GetSelectedItem();
if (htreeitem != NULL){
if (g_old_htreeitem != htreeitem){
if (g_old_htreeitem != NULL){
m_tree.SetItemState(g_old_htreeitem,0,0xffff);
}
}
m_tree.Select(htreeitem,TVGN_FIRSTVISIBLE);
// m_tree.SelectItem(htreeitem);
m_tree.SetItemState(htreeitem,TVIS_DROPHILITED,0xffff);
g_old_htreeitem = htreeitem;
for (j=0;j<g_end_sbs;j++){
if (g_htreeitem[j] == htreeitem){
i = j;
break;
}
}
g_yszm_sel_sb = i;
g_yszm_xzsb_flag = 1;
SetDlgItemText(IDC_pyjx,g_e_abbr[i]);
Set_to_item_end(this,IDC_pyjx);
sel_flag = 1;
SetDlgItemText(IDC_sbmc,g_e_name[i]);
SetDlgItemText(IDC_gdbh,g_a_id[i]);
SetDlgItemText(IDC_yqdm,g_e_code[i]);
SetDlgItemText(IDC_scdm,g_p_id[i]);
}
// m_tree.Invalidate(TRUE);
// CRect rect;
// CWnd *wnd;
// wnd = GetDlgItem(IDC_TREE1);
// wnd->GetWindowRect(&rect);
// m_tree.InvalidateRect(&rect,TRUE);
m_tree.Invalidate(TRUE);
}
// m_tree. CTreeCtrl
*pResult = 0;
}
void Csdgdbhdlg::OnChangepyjx()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
char buf[20];
int i;
long l;
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);
return;
// Set_to_item_end(this,IDC_pyjx);
}
}
}
if (strlen(buf) > 10){
buf[10] = 0;
SetDlgItemText(IDC_pyjx,buf);
return;
// Set_to_item_end(this,IDC_pyjx);
}
if (g_yszm_xzsb_flag == 0){
GetDlgItemText(IDC_pyjx,buf,20);
Cyszmxzsbdlg dlg;
g_yszm_xzsb_flag = 1;
strcpy(g_yszm_xzsb_pass_buf,buf);
if (dlg.DoModal() == IDOK){
i = g_yszm_sel_sb;
g_yszm_xzsb_flag = 1;
SetDlgItemText(IDC_pyjx,g_e_abbr[i]);
sel_flag = 1;
SetDlgItemText(IDC_sbmc,g_e_name[i]);
SetDlgItemText(IDC_gdbh,g_a_id[i]);
SetDlgItemText(IDC_yqdm,g_e_code[i]);
SetDlgItemText(IDC_scdm,g_p_id[i]);
if (g_old_htreeitem != g_htreeitem[i]){
if (g_old_htreeitem != NULL){
m_tree.SetItemState(g_old_htreeitem,0,0xffff);
}
}
m_tree.Select(g_htreeitem[i],TVGN_FIRSTVISIBLE);
m_tree.SetItemState(g_htreeitem[i],TVIS_DROPHILITED,0xffff);
g_old_htreeitem = g_htreeitem[i];
CWnd *wnd;
wnd = GetDlgItem(IDOK);
wnd->SetFocus();
}
}
else{
g_yszm_xzsb_flag = 0;
}
}
void Csdgdbhdlg::OnSetfocuspyjx()
{
// TODO: Add your control notification handler code here
CWnd *wn;
wn = GetDlgItem(IDC_pyjx);
switch_to_english_mode(wn);
}
void Csdgdbhdlg::OnOK()
{
// TODO: Add extra validation here
out_flag = 1;
free_sbtree(m_tree);
CDialog::OnOK();
}
void Csdgdbhdlg::OnChangesbmc()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
char buf[40];
if (sel_flag == 1){
sel_flag = 0;
GetDlgItemText(IDC_sbmc,buf,40);
if ((strstr(buf,"其他") != NULL)||(strstr(buf,"其它") != NULL)){
CWnd *wnd;
wnd = GetDlgItem(IDC_sbmc);
wnd->EnableWindow(TRUE);
}
else{
CWnd *wnd;
wnd = GetDlgItem(IDC_sbmc);
wnd->EnableWindow(FALSE);
}
}
}
void Csdgdbhdlg::OnItemexpandedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
m_tree.Invalidate(TRUE);
*pResult = 0;
}
void Csdgdbhdlg::OnCancel()
{
// TODO: Add extra cleanup here
free_sbtree(m_tree);
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -