📄 childfrm.cpp
字号:
// ChildFrm.cpp : implementation of the CChildFrame class
//
#include "stdafx.h"
#include "imgproc.h"
#include "ChildFrm.h"
#include "addfile.h"
#include "afx.h"
#include "imgprocDoc.h"
#include "imgprocView.h"
#include "comapi.h"
#include "dibapi.h"
#include "Resource.h"
#include "adddll.h"
#include "InDlg1.h"
#include "In2Dlg.h"
#include "In3Dlg.h"
#include "In4Dlg.h"
#include "In5Dlg.h"
#include "In6Dlg.h"
#include "In7Dlg.h"
#include "In8Dlg.h"
#include "TemDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChildFrame
IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CChildFrame)
ON_WM_MDIACTIVATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
static int flag=1;
// CChildFrame construction/destruction
CChildFrame::CChildFrame()
{
// TODO: add member initialization code here
}
CChildFrame::~CChildFrame()
{
}
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.cx=190;
cs.cy=250;
return CMDIChildWnd::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CChildFrame diagnostics
#ifdef _DEBUG
void CChildFrame::AssertValid() const
{
CMDIChildWnd::AssertValid();
}
void CChildFrame::Dump(CDumpContext& dc) const
{
CMDIChildWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CChildFrame message handlers
void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
if(flag)
{
flag=0;
addmenu();
}
}
void CChildFrame::addmenu()
{
CFile file;
// CFileException fe;
int i;
char* pfilename="c:addfile";
struct Item item;
if (!file.Open(pfilename,CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone))
{
/* #ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
*/
AfxMessageBox("Can't open the file!");
return;
}
CMenu* pTopMenu = AfxGetMainWnd()->GetMenu();
for(i=0;i<20;i++)
{
file.Read(&item,sizeof(item));
if(item.used)
{
CMenu* pMenu = pTopMenu->GetSubMenu(item.menupos+1);
pMenu->AppendMenu(MF_STRING|MF_ENABLED,item.id,item.menuname);
}
}
file.Close();
}
BOOL CChildFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
if((wParam>=ID_ITEM0)&&(wParam<=ID_ITEM19))
{
CImgprocView *pView = (CImgprocView *)GetActiveView();
//AfxMessageBox("kkkk");
CFile file;
char *p="c:addfile";
struct Item item;
if(!file.Open(p,CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone))
{
AfxMessageBox("Can't open the file!");
return FALSE;
}
file.Seek((wParam-ID_ITEM0)*sizeof(item),CFile::begin);
file.Read(&item,sizeof(item));
file.Close();
unsigned short col,row;
unsigned char** uppimage;
unsigned char** outimage;
unsigned char tmp[7][7];
float v1,v2,v3,v4,v5,v6,v7,v8;
CInDlg1 dlg1;
CIn2Dlg dlg2;
CIn3Dlg dlg3;
CIn4Dlg dlg4;
CIn5Dlg dlg5;
CIn6Dlg dlg6;
CIn7Dlg dlg7;
CIn8Dlg dlg8;
CTemDlg dlgtmp;
switch(item.varnumber)
{
case 1:
dlg1.m_text=item.var1;
if(dlg1.DoModal()==IDCANCEL) return TRUE;
v1=dlg1.m_value;
break;
case 2:
dlg2.m_n1=item.var1;
dlg2.m_n2=item.var2;
if(dlg2.DoModal()==IDCANCEL) return TRUE;
v1=dlg2.m_v1;
v2=dlg2.m_v2;
break;
case 3:
dlg3.m_n1=item.var1;
dlg3.m_n2=item.var2;
dlg3.m_n3=item.var3;
if(dlg3.DoModal()==IDCANCEL) return TRUE;
v1=dlg3.m_v1;
v2=dlg3.m_v2;
v3=dlg3.m_v3;
break;
case 4:
dlg4.m_n1=item.var1;
dlg4.m_n2=item.var2;
dlg4.m_n3=item.var3;
dlg4.m_n4=item.var4;
if(dlg4.DoModal()==IDCANCEL) return TRUE;
v1=dlg4.m_v1;
v2=dlg4.m_v2;
v3=dlg4.m_v3;
v4=dlg4.m_v4;
break;
case 5:
dlg5.m_n1=item.var1;
dlg5.m_n2=item.var2;
dlg5.m_n3=item.var3;
dlg5.m_n4=item.var4;
dlg5.m_n5=item.var5;
if(dlg5.DoModal()==IDCANCEL) return TRUE;
v1=dlg5.m_v1;
v2=dlg5.m_v2;
v3=dlg5.m_v3;
v4=dlg5.m_v4;
v5=dlg5.m_v5;
break;
case 6:
dlg6.m_n1=item.var1;
dlg6.m_n2=item.var2;
dlg6.m_n3=item.var3;
dlg6.m_n4=item.var4;
dlg6.m_n5=item.var5;
dlg6.m_n6=item.var6;
if(dlg6.DoModal()==IDCANCEL) return TRUE;
v1=dlg6.m_v1;
v2=dlg6.m_v2;
v3=dlg6.m_v3;
v4=dlg6.m_v4;
v5=dlg6.m_v5;
v6=dlg6.m_v6;
break;
case 7:
dlg7.m_n1=item.var1;
dlg7.m_n2=item.var2;
dlg7.m_n3=item.var3;
dlg7.m_n4=item.var4;
dlg7.m_n5=item.var5;
dlg7.m_n6=item.var6;
dlg7.m_n7=item.var7;
if(dlg7.DoModal()==IDCANCEL) return TRUE;
v1=dlg7.m_v1;
v2=dlg7.m_v2;
v3=dlg7.m_v3;
v4=dlg7.m_v4;
v5=dlg7.m_v5;
v6=dlg7.m_v6;
v7=dlg7.m_v7;
break;
case 8:
dlg8.m_vname1=item.var1;
dlg8.m_vname2=item.var2;
dlg8.m_vname3=item.var3;
dlg8.m_vname4=item.var4;
dlg8.m_vname5=item.var5;
dlg8.m_vname6=item.var6;
dlg8.m_vname7=item.var7;
dlg8.m_vname8=item.var8;
if(dlg8.DoModal()==IDCANCEL) return TRUE;
v1=dlg8.m_v1;
v2=dlg8.m_v2;
v3=dlg8.m_v3;
v4=dlg8.m_v4;
v5=dlg8.m_v5;
v6=dlg8.m_v6;
v7=dlg8.m_v7;
v8=dlg8.m_v8;
break;
}
if(item.tmpflag)
{
dlgtmp.m_1_1=0; dlgtmp.m_1_2=0; dlgtmp.m_1_3=0; dlgtmp.m_1_4=0;
dlgtmp.m_1_5=0; dlgtmp.m_1_6=0; dlgtmp.m_1_7=0;
dlgtmp.m_2_1=0; dlgtmp.m_2_2=1; dlgtmp.m_2_3=1; dlgtmp.m_2_4=1;
dlgtmp.m_2_5=1; dlgtmp.m_2_6=1; dlgtmp.m_2_7=0;
dlgtmp.m_3_1=0; dlgtmp.m_3_2=1; dlgtmp.m_3_3=1; dlgtmp.m_3_4=1;
dlgtmp.m_3_5=1; dlgtmp.m_3_6=1; dlgtmp.m_3_7=0;
dlgtmp.m_4_1=0; dlgtmp.m_4_2=1; dlgtmp.m_4_3=1; dlgtmp.m_4_4=1;
dlgtmp.m_4_5=1; dlgtmp.m_4_6=1; dlgtmp.m_4_7=0;
dlgtmp.m_5_1=0; dlgtmp.m_5_2=1; dlgtmp.m_5_3=1; dlgtmp.m_5_4=1;
dlgtmp.m_5_5=1; dlgtmp.m_5_6=1; dlgtmp.m_5_7=0;
dlgtmp.m_6_1=0; dlgtmp.m_6_2=1; dlgtmp.m_6_3=1; dlgtmp.m_6_4=1;
dlgtmp.m_6_5=1; dlgtmp.m_6_6=1; dlgtmp.m_6_7=0;
dlgtmp.m_7_1=0; dlgtmp.m_7_2=0; dlgtmp.m_7_3=0; dlgtmp.m_7_4=0;
dlgtmp.m_7_5=0; dlgtmp.m_7_6=0; dlgtmp.m_7_7=0;
if(dlgtmp.DoModal()==IDCANCEL) return TRUE;
tmp[0][0]=dlgtmp.m_1_1; tmp[0][1]=dlgtmp.m_1_2; tmp[0][2]=dlgtmp.m_1_3;
tmp[0][3]=dlgtmp.m_1_4; tmp[0][4]=dlgtmp.m_1_5; tmp[0][5]=dlgtmp.m_1_6;
tmp[0][6]=dlgtmp.m_1_7;
tmp[1][0]=dlgtmp.m_2_1; tmp[1][1]=dlgtmp.m_2_2; tmp[1][2]=dlgtmp.m_2_3;
tmp[1][3]=dlgtmp.m_2_4; tmp[1][4]=dlgtmp.m_2_5; tmp[1][5]=dlgtmp.m_2_6;
tmp[1][6]=dlgtmp.m_2_7;
tmp[2][0]=dlgtmp.m_3_1; tmp[2][1]=dlgtmp.m_3_2; tmp[2][2]=dlgtmp.m_3_3;
tmp[2][3]=dlgtmp.m_3_4; tmp[2][4]=dlgtmp.m_3_5; tmp[2][5]=dlgtmp.m_3_6;
tmp[2][6]=dlgtmp.m_3_7;
tmp[3][0]=dlgtmp.m_4_1; tmp[3][1]=dlgtmp.m_4_2; tmp[3][2]=dlgtmp.m_4_3;
tmp[3][3]=dlgtmp.m_4_4; tmp[3][4]=dlgtmp.m_4_5; tmp[3][5]=dlgtmp.m_4_6;
tmp[3][6]=dlgtmp.m_4_7;
tmp[4][0]=dlgtmp.m_5_1; tmp[4][1]=dlgtmp.m_5_2; tmp[4][2]=dlgtmp.m_5_3;
tmp[4][3]=dlgtmp.m_5_4; tmp[4][4]=dlgtmp.m_5_5; tmp[4][5]=dlgtmp.m_5_6;
tmp[4][6]=dlgtmp.m_5_7;
tmp[5][0]=dlgtmp.m_6_1; tmp[5][1]=dlgtmp.m_6_2; tmp[5][2]=dlgtmp.m_6_3;
tmp[5][3]=dlgtmp.m_6_4; tmp[5][4]=dlgtmp.m_6_5; tmp[5][5]=dlgtmp.m_6_6;
tmp[5][6]=dlgtmp.m_6_7;
tmp[6][0]=dlgtmp.m_7_1; tmp[6][1]=dlgtmp.m_7_2; tmp[6][2]=dlgtmp.m_7_3;
tmp[6][3]=dlgtmp.m_7_4; tmp[6][4]=dlgtmp.m_7_5; tmp[6][5]=dlgtmp.m_7_6;
tmp[6][6]=dlgtmp.m_7_7;
}
CImgprocDoc* pDoc =(CImgprocDoc*)(pView->GetDocument());
HDIB hDIB = pDoc->GetHDIB();
if (hDIB != NULL)
{
HDIB back=(HDIB)CopyHandle((HANDLE)hDIB);
uppimage=::DIBToArray(hDIB,col,row);
outimage=(unsigned char**)::fspace_2d(col,row,sizeof(unsigned char));
// func(uppimage,outimage,row,col);
HMODULE /*HINSTANCE*/ hll;
// FARPROC lpfunc;
typedef void (* LLL)(unsigned char **InImage, unsigned char **OutImage, int row,int col,
unsigned char Templete[7][7],float var1,float var2,float var3,
float var4,float var5,float var6,float var7,float var8);
LLL lpfunc;
hll=(HMODULE)LoadLibrary("adddll.dll");
if(hll==NULL)
{
MessageBox("Can't open the adddll.dll!");
return FALSE;
}
lpfunc=(LLL)GetProcAddress(hll,item.funname);
lpfunc(uppimage,outimage,/*row*/col,/*col*/row,tmp,v1,v2,v3,v4,v5,v6,v7,v8);
FreeLibrary(hll);
::ArrayToDIB(col,row,outimage,hDIB);
::ffree_2d((void**)outimage,col);
pView->myEditCopy();
pDoc->ReplaceHDIB(back);
// pDoc->SetModifiedFlag();
pView->SendMessage(WM_MYOWN);
}
return TRUE;
}
else
return CMDIChildWnd::OnCommand(wParam, lParam);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -