Beispiel #1
0
void CProfileGraphDlg::OnBnClickedBtnOpen()
{
	// TODO: Add your control notification handler code here
	static char szFilters[] = "KPG Files (*.kpg)|*.kpg|All Files (*.*)|*.*||";
	CFileDialog filedlg (TRUE, "kpg", "*.kpg",
		OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);

	if( filedlg.DoModal ()==IDOK )
	{
		CString pathName = filedlg.GetPathName();

		m_GraphDoc.Close();
		m_GraphChart.ResetChart();

		if ( m_GraphDoc.Open( (LPCSTR)pathName ) )
		{
			// change the window's title to the opened file's title.
			CString fileName = filedlg.GetFileTitle ();
			CString captionName;

			captionName.Format( "%s    FRAME = %d", fileName, m_GraphDoc.GetFrameNumber() );
			SetWindowText(captionName);


			// fill graph sys info
			fillGraphSysInfo();


			// fill graph call tree
			fillGraphCallTree();

		}

	}

}
Beispiel #2
0
void CStorageDoc::OnFileImport () {
	CFile		fImport;
	CFileDialog	dlgOpen (true);
	// #### TODO: Place here initial directory name taken from configuration structures
	dlgOpen.m_ofn.lpstrInitialDir = ".";
	dlgOpen.m_ofn.lpstrFilter = "Kontron Elektronik Images (*.img)""\0""*.IMG""\0"
		"All supported signle image formats""\0""*.JPG;*.JPEG;*.GIF;*.PNG;*.BMP;*.DIB""\0"
		"JPEG Bitmap (*.jpg, *.jpeg)""\0""*.JPG;*.JPEG""\0"
		"CumpuServe GIF (*.gif)""\0""*.GIF""\0"
		"Prtable Network Graphics (*.png)""\0""*.PNG""\0"
		"MS Windows Bitmap (*.bmp, *.dib)""\0""*.BMP;*.DIB""\0";
	dlgOpen.m_ofn.nFilterIndex = 1;
//	dlgOpen.SetWindowText (theApp.LoadString (IDS_IMPORTSEQ_DLGCAPTION));
	if (dlgOpen.DoModal () != IDOK)
		return;

	// #### TODO: Add support for video formats
	// #### TODO: Add support for multi-page tif format
	// #### TODO: Create import dialog
	// #### TODO: Add progress control on the status bar

	uvar32_64	selected;
	svar32_64	nImages;
	uvar32_64	dwSize = m_nDimX * m_nDimY;
	CString		strTitle;
	BYTE		*pbPixels = (BYTE *)aimMemoryCommit (dwSize, "CStorageDoc::OnDocAddImportseq", "pbPixels");


	if ((selected = Frames[aimActive].GetActiveImageNo()) == -1)
		selected = Images.GetCount () - 1;

	theApp.StatusState (IDI_INDICATOR_IMPORT);
	if (dlgOpen.m_ofn.nFilterIndex == 1) {
		if (!fImport.Open (dlgOpen.GetPathName (), CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite)) {
			MessageBox (theApp.m_pMainWnd->m_hWnd, theApp.LoadString (IDS_IMPORTSEQ_OPENERR), theApp.LoadString (IDS_IMPORTSEQ_DLGCAPTION), MB_OK | MB_ICONERROR);
			return;
		}
		BYTE	*pbHeader = new BYTE[0x80];
		fImport.Read ( pbHeader, 0x80 );
		if (((DWORD*)(pbHeader + 2))[0] != 0xB06D1247) {
			MessageBox  (theApp.m_pMainWnd->m_hWnd, theApp.LoadString (IDS_IMPORTSEQ_TYPEERR), theApp.LoadString (IDS_IMPORTSEQ_DLGCAPTION), MB_OK | MB_ICONERROR);
			return;
		}
		if (((WORD*)pbHeader)[5] != 0x4321) {
			MessageBox  (theApp.m_pMainWnd->m_hWnd, theApp.LoadString (IDS_IMPORTSEQ_TYPEERR), theApp.LoadString (IDS_IMPORTSEQ_DLGCAPTION), MB_OK | MB_ICONERROR);
			return;
		}
		if (((WORD*)pbHeader)[3] != m_nDimX || ((WORD*)pbHeader)[4] != m_nDimY || m_nBPP != 8) {
			MessageBox  (theApp.m_pMainWnd->m_hWnd, theApp.LoadString (IDS_IMPORTSEQ_SIZEERR), theApp.LoadString (IDS_IMPORTSEQ_DLGCAPTION), MB_OK | MB_ICONERROR);
			return;
		}
		nImages = ((WORD*)pbHeader)[6];

		theApp.StatusState (IDI_INDICATOR_IMPORT);
		while (--nImages >= 0) {
			strTitle.Format ("%s #%03d", dlgOpen.GetFileTitle (), ((WORD*)pbHeader)[6] - nImages);
			CPicture *pImg = new CPicture (this, strTitle, "");
			fImport.Read (pbPixels, dwSize);
			pImg->Channels(aimAll).SetBits (pbPixels, dwSize);
			Images.Insert (selected++, *pImg);
		}
		nImages = ((WORD*)pbHeader)[6];

		fImport.Close ();
		delete [] pbHeader;
		aimMemoryRelease (pbPixels, "CStorage::OnDocAddImportseq", "pbPixels");
	} else if (dlgOpen.m_ofn.nFilterIndex >= 2) {
		CImage image;
		image.Load (dlgOpen.GetPathName ());
		if (image.GetBPP () != m_nBPP || image.GetHeight () != m_nDimY || image.GetWidth () != m_nDimX) {
			MessageBox  (theApp.m_pMainWnd->m_hWnd, theApp.LoadString (IDS_IMPORTSEQ_SIZEERR), theApp.LoadString (IDS_IMPORTSEQ_DLGCAPTION), MB_OK | MB_ICONERROR);
			return;
		}
		CPicture *pImg = new CPicture (this, dlgOpen.GetFileTitle (), "");
		ubyte *pBits;
		if (image.IsDIBSection () && image.GetPitch () < 0)
			pBits = (ubyte*)image.GetBits () - (m_nDimY - 1) * m_nDimX;
		else
			pBits = (ubyte*)image.GetBits ();
		pImg->Channels(aimAll).SetBits (pBits, m_nDimX * m_nDimY * m_nBPP / 8);
		Images.Insert (selected++, *pImg);
	}

	theApp.StatusState (0);
}