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

📄 jobdlg.cpp

📁 该程序实现的是一个在织布厂用的提花机程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	CNumDlg dlg;
	dlg.m_num=pw->m_StartPoint.y+pw->m_Size.cy;
	dlg.m_info.Format(IDS_TO+g_language);
	if(dlg.DoModal()==IDOK)
	{
		if(dlg.m_num>pw->m_Wea1->WeaSize.cy || dlg.m_num<pw->m_StartPoint.y+1)
		{
			AfxMessageBox(IDS_ERROR_END+g_language);
				return;
		}
		pw->m_Size.cy=dlg.m_num-pw->m_StartPoint.y;
	}
	pw->SetRange(pw->m_StartPoint,pw->m_Size);
	UpdateList(m_index);
*/	
}

void CJobDlg::OnWearepeat() 
{
	CWea* pw=(CWea*)g_job.GetAt(m_index);
	CString info;
	int x;
	info.Format(IDS_WEAREPEAT+g_language);
	if(m_hDLL)
	{
		x=get_number(info,pw->m_nRepeat,g_language);
		if(x==pw->m_nRepeat)
			return;
		pw->m_nRepeat=x;
		UpdateList(m_index);
		m_bModified=TRUE;
	}
/*	CWea* pw=(CWea*)g_job.GetAt(m_index);
	CNumDlg dlg;
	dlg.m_num=pw->m_nRepeat;
	dlg.m_info.Format(IDS_WEAREPEAT+g_language);
	if(dlg.DoModal()==IDOK)
	{
		pw->m_nRepeat=dlg.m_num;
	}
	UpdateList(m_index);
	m_bModified=TRUE;
*/}

void CJobDlg::EnableKey(BOOL enable)
{
	UINT cont[]={IDC_DEL,IDC_DOWN,IDC_FROM,IDC_TO,IDC_WEAREPEAT,
				IDC_SAVEJOB,IDC_JOBREPEAT};
	for(int i=0;i<sizeof(cont)/sizeof(UINT);i++)
	{
		CWnd* pWnd=GetDlgItem(cont[i]);
		pWnd->EnableWindow(enable);
	}

}

void CJobDlg::EnableOK(BOOL enable)
{
	CWnd* pWnd=GetDlgItem(IDOK);
	pWnd->EnableWindow(enable);

}

void CJobDlg::OnLoadjob() 
{
	CString fn=GetFileName(CString(".JOB"));
	if(fn.IsEmpty())
		return;
/*		CString lpszFullName;
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
	LPCTSTR lpszFilter = ".job Files(*..job)|*.job|All files(*.*)|*.*||";
	CFileDialog dlg(TRUE,NULL,NULL,dwFlags,lpszFilter,NULL);
	if(dlg.DoModal() == IDOK)
	{
		lpszFullName=dlg.GetPathName();
	}
	else
		return;

	CFileDlg dlg;
	dlg.m_match=CString("*.job");
	dlg.m_info.Format(IDS_SELECT_JOB_NAME+g_language);
	if(dlg.DoModal()==IDOK)
	{
		lpszFullName=dlg.m_file;
	}
*/
	CJobList temp;
	temp.m_Width=g_job.m_Width;
	if(!temp.OpenDocument(fn))
	{
		return;
	}

	OnClearjob();
	g_job.OpenDocument(fn);
	m_index=0;
	UpdateList(m_index);
	if(m_bEnable==0)
	{
		EnableKey(1);
		m_bEnable=1;
	}
	EnableOK(1);
	m_JobName=fn;
//	m_job=g_job;
	g_bProgramReady=1;
	char drive[_MAX_DRIVE];
	char dir[_MAX_DIR];
	char fname[_MAX_FNAME];
	char ext[_MAX_EXT];
	_splitpath( fn, drive, dir, fname, ext );
	
//	char buffer[_MAX_PATH];
	
	g_job.m_JobFileName=CString(fname)+CString(ext);
//	_getcwd(buffer,_MAX_PATH);
	g_job.m_JobPathName=CString(drive)+CString(dir);
	m_bModified=TRUE;

}

void CJobDlg::OnSavejob() 
{
//	if(m_JobName.IsEmpty())
/*	{
		DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
		LPCTSTR lpszFilter = ".job Files(*..job)|*.job|All files(*.*)|*.*||";
		CFileDialog dlg(FALSE,NULL,NULL,dwFlags,lpszFilter,NULL);
		if(dlg.DoModal() == IDOK)
		{
			m_JobName=dlg.GetPathName();
		}
		else
			return;
	}
*/
	CString fn;
	CString info;
	info.Format(IDS_INPUT_JOB_NAME+g_language);
	if(m_hDLL)
	{
		fn=get_string(info,g_job.m_JobFileName,g_language);
		if(fn.Right(4)!=CString(".JOB"))
			return;
		g_job.m_JobPathName=CString("D:\\CCJB\\JOB");
		SetCurrentDirectory(g_job.m_JobPathName);
		CFileFind finder;
		BOOL bFound = finder.FindFile(fn);
		if(bFound)
		{
			CString s;
			s.Format(IDS_IF_OVERRIDE+g_language);
			if(AfxMessageBox(s,MB_OKCANCEL)!=IDOK)
				return;
		}
		g_job.m_JobFileName=fn;
		m_JobName=g_job.m_JobPathName+CString("\\");
		m_JobName+=fn;
		g_job.SaveDocument(m_JobName);
		UpdateList(m_index);
		EnableOK(1);
		SaveIni(&g_job,&g_running);
		UpdateData(0);
	}
/*
	CString fn;
	CKeyBDlg dlg;
	dlg.m_info.Format(IDS_INPUT_JOB_NAME+g_language);
	dlg.m_bShow=1;
	if(dlg.DoModal()==IDOK)
		fn=dlg.m_sEdit;

	if(fn.IsEmpty())
		return;
	if(fn.Right(4)!=CString(".JOB"))
		return;
	g_job.m_JobPathName=CString("D:\\CCJB\\JOB");
	SetCurrentDirectory(g_job.m_JobPathName);
	CFileFind finder;
	BOOL bFound = finder.FindFile(fn);
    if(bFound)
	{
		CString s;
		s.Format(IDS_IF_OVERRIDE+g_language);
		if(AfxMessageBox(s,MB_OKCANCEL)!=IDOK)
			return;
	}

   g_job.m_JobFileName=fn;
	m_JobName=g_job.m_JobPathName+CString("\\");
	m_JobName+=fn;
		g_job.SaveDocument(m_JobName);
		UpdateList(m_index);
		EnableOK(1);
//		m_job=g_job;
		SaveIni(&g_job,&g_running);
		UpdateData(0);
*/	
}

void CJobDlg::OnJobrepeat() 
{
	CString info;
	int x;
	info.Format(IDS_JOBREPEAT+g_language);
	if(m_hDLL)
	{
		x=get_number(info,g_job.m_nRepeat,g_language);
		if(x==g_job.m_nRepeat)
			return;
		g_job.m_nRepeat=x;
		UpdateList(m_index);
		m_bModified=TRUE;
	}

/*	
	CNumDlg dlg;
	CString info;
	dlg.m_info.Format(IDS_JOBREPEAT+g_language);
	dlg.m_num=g_job.m_nRepeat;
	if(dlg.DoModal()==IDOK)
	{
		g_job.m_nRepeat=dlg.m_num;
		UpdateList(m_index);
	}
	m_bModified=TRUE;*/
}

void CJobDlg::OnOK() 
{
	if(m_bModified==TRUE)
	{
		if(g_job.GetSize()>=1)
		{
			g_job.SaveDocument();
			SaveIni(&g_job,&g_running);
		}
	};
	if(g_job.GetSize()>0)
	{
		g_job.ReArrange();
		g_running.Initialize(&g_job);
		g_bProgramReady=TRUE;
	}
	else
		g_bProgramReady=FALSE;
	CDialog::OnOK();

}
/*
void CJobDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	WritePrivateProfileString ("Job File", "Filename","", "wea2.ini"); 	
	g_job.RemoveAll();
	EnableOK(0);
	CDialog::OnCancel();
}
*/
void CJobDlg::OnBack() 
{
	if(m_job.m_Width==0)
		return;
	g_bProgramReady=1;
	g_job=m_job;
	g_job.ReArrange();
	UpdateList(0);
	m_index=0;
//	g_running.m_WritePointer=m_pointer;
	m_bModified=FALSE;
}

void CJobDlg::OnClearjob() 
{
	// TODO: Add your control notification handler code here
	g_bSendData=0;
	g_running.StopRun();
	int n=g_job.GetSize();
	for(int i=n-1;i>=0;i--)
	{
		CWea* wea=(CWea*)g_job.GetAt(i);
		delete wea;
		g_job.RemoveAt(i);
	}
	g_bProgramReady=FALSE;
	m_bEnable=0;
	EnableKey(0);
//	EnableOK(0);
	m_JobName.Empty();
	UpdateData(0);
	m_index=-1;	
	UpdateList(-1);
//	m_pointer=g_running.m_WritePointer;
	g_running.InitialWriterPointer();
	m_bModified=TRUE;

}



LRESULT CJobDlg::OnLanguage(WPARAM wParam,LPARAM lParam)
{
	CBiling bil;
	bil.m_language=(LANGUAGE) wParam;
	UINT id[]={IDOK,IDC_APPEND,IDC_INSERT,	IDC_DEL,IDC_FROM,IDC_TO,IDC_WEAREPEAT,IDC_LOADJOB,IDC_BACK,
	IDC_SAVEJOB,IDC_CLEARJOB,IDC_JOBREPEAT,IDC_STATIC1,IDC_STATIC2};
	UINT str[]={IDS_EXIT,IDS_APPEND,IDS_INSERT,	IDS_DELETE,IDS_FROM,IDS_TO,IDS_WEAREPEAT,IDS_LOADJOB,IDS_BACK,
	IDS_SAVEJOB,IDS_CLEARJOB,IDS_JOBREPEAT,IDS_WEAFILE,IDS_JOBFILE};

	int num=sizeof(id)/sizeof(UINT);
	bil.m_StrID=str;
	bil.m_ResID=id;
	bil.Set(this,num);


	CStringArray SA;
	switch(wParam)
	{
	case 0:
		SA.Add("Wea Filename");
		SA.Add("Picks ");
		SA.Add("Start Pick");  //from
		SA.Add("End Pick  ");  //to
		SA.Add("Repeat ");
		InitialList(&m_WeaList,SA);

		SA.RemoveAll();
		SA.Add("Job_List Filename");
		SA.Add("Job Repeat");
		InitialList(&m_JobList,SA);
		break;
	case 1:
	default:
		SA.Add("花样文件");
		SA.Add("纬数 ");
		SA.Add("起始纬");  //from
		SA.Add("终止纬");  //to 
		SA.Add("重复   ");
		InitialList(&m_WeaList,SA);

		SA.RemoveAll();
		SA.Add("工作单文件       ");
		SA.Add("工作单重复");
		InitialList(&m_JobList,SA);
	}
	CWnd* pWnd=GetParent( );
	if(pWnd)
	{
		HWND hwnd=pWnd->GetSafeHwnd();
		::PostMessage(hwnd,WM_LANGUAGE,wParam,0);
	}

	return 0L;
}

CString CJobDlg::GetFileName(CString ext)
{
	CString fn;
	HINSTANCE hDLL;
	SEL_F sel;
	hDLL=NULL;
	hDLL = LoadLibrary("file_dll");
	if (hDLL != NULL)
	{
		sel=(SEL_F)GetProcAddress(hDLL, "SelectFile");
	    if ( !sel)
	    {
		   AfxMessageBox("Can't load dll function --- SelectFile");
	    }
	    else
		{
			fn=sel(ext,g_language);
		}
		FreeLibrary(hDLL);
	}
	else
		AfxMessageBox("Can't load  DLL");
	return fn;
}

void CJobDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	if(m_hDLL)
	{
		FreeLibrary(m_hDLL);
		m_hDLL=NULL;
	}
	
}

⌨️ 快捷键说明

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