ASKDlg.docx
- 文档编号:12064007
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:27
- 大小:19.26KB
ASKDlg.docx
《ASKDlg.docx》由会员分享,可在线阅读,更多相关《ASKDlg.docx(27页珍藏版)》请在冰豆网上搜索。
ASKDlg
//ASKDlg.cpp:
implementationfile
//
#include"ASKDlg.h"
#include"stdafx.h"
#include"math.h"
#include"ASK.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CASKDlgdialog
CASKDlg:
:
CASKDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CASKDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CASKDlg)
nMyID=33;
nIntensity=6;
nWinFun=_T("¹þÃ÷´°");
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCASKDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CASKDlg)
DDX_Control(pDX,IDC_WinFun,m_combox);
DDX_Text(pDX,IDC_ID,nMyID);
DDX_Text(pDX,IDC_Intensity,nIntensity);
DDX_CBString(pDX,IDC_WinFun,nWinFun);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CASKDlg,CDialog)
//{{AFX_MSG_MAP(CASKDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_EN_CHANGE(IDC_ID,OnChangeId)
ON_EN_CHANGE(IDC_Intensity,OnChangeIntensity)
ON_BN_CLICKED(IDC_BaseSignal,OnBaseSignal)
ON_CBN_SELCHANGE(IDC_WinFun,OnSelchangeWinFun)
ON_BN_CLICKED(IDC_PassLpf1,OnPassLpf1)
ON_BN_CLICKED(IDC_Lpf,OnLpf)
ON_BN_CLICKED(IDC_Bpf,OnBpf)
ON_BN_CLICKED(IDC_Modulate,OnModulate)
ON_BN_CLICKED(IDC_Channel,OnChannel)
ON_BN_CLICKED(IDC_Noise,OnNoise)
ON_BN_CLICKED(IDC_PassBpf,OnPassBpf)
ON_BN_CLICKED(IDC_Demodulate,OnDemodulate)
ON_BN_CLICKED(IDC_PassLpf2,OnPassLpf2)
ON_BN_CLICKED(IDC_Adjust,OnAdjust)
ON_BN_CLICKED(IDC_T,OnT)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CASKDlgmessagehandlers
BOOLCASKDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCASKDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCASKDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCASKDlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}/*
//findmax
floatfindmax(floata[],intm)
{
inti;
floatmax;
max=a[0];
for(i=1;i if(a[i]>max) max=a[i]; returnmax; } //»Í¼£¨´«Êä¹ý³ÌÌØÐÔͼ£© voidCASKDlg: : Graph(floatS[],floatFrep[]) { CWnd*pWnd=GetDlgItem(IDC_T); CDC*pDC=pWnd->GetDC(); CRectrect; pWnd->GetClientRect(rect); intW=rect.Width();//»Í¼ÇøÓò¿í¶È intH=rect.Height();//»Í¼ÇøÓò¸ß¶È //ÉèÖñ³¾°É« RedrawWindow(); CBrushnewbrush; newbrush.CreateSolidBrush(RGB(255,255,255)); pDC->Rectangle(rect); intStepX=int((W-1)/(16*M)); doublemaxt=findmax(S,(16*M)); doubleStepY=(H/2-10)/(fabs(maxt)); //È·¶¨»Í¼ÆðʼλÖà intox=int((W-(16*M)*StepX)/2); intoyt=rect.bottom-int(H/2); //»×ø±ê CPenCoordinatePen,pen; CoordinatePen.CreatePen(PS_SOLID,1,RGB(0,255,0)); pen.CreatePen(PS_SOLID,1,RGB(0,0,0)); pDC->SelectObject(&CoordinatePen); pDC->MoveTo(rect.left,oyt); pDC->LineTo(rect.left+W,oyt); pDC->SelectObject(&pen); pDC->MoveTo(ox,oyt); for(inti=0;i<(16*M);i++) { pDC->LineTo(ox+i*StepX,int(oyt-StepY*S[i])); } //ƵÆ×ͼ CWnd*pWnd1=GetDlgItem(IDC_F); CDC*pDC1=pWnd1->GetDC(); CRectrect1; pWnd1->GetClientRect(rect1); intW1=rect1.Width();//»Í¼ÇøÓò¿í¶È intH1=rect1.Height();//»Í¼ÇøÓò¸ß¶È CBrushnewbrush1; newbrush1.CreateSolidBrush(RGB(255,255,255)); pDC1->Rectangle(rect1); //×ø±ê¶¨Î» intStepX1=int(2*(W1-1)/(16*M)); floatmaxt1=findmax(Frep,int((16*M)/2)); floatStepY1=(4*H1/5-10)/((float)fabs(maxt1)); //È·¶¨»Í¼ÆðʼλÖà intoxf=int((W1-(16*M)*StepX1/2)/2); intoyf=rect1.bottom-int(H1/5); CPenCoordinatePen1,pen1; CoordinatePen1.CreatePen(PS_SOLID,1,RGB(0,255,0)); pen1.CreatePen(PS_SOLID,1,RGB(0,0,0)); pDC1->SelectObject(&CoordinatePen1); //»×ø±ê pDC1->MoveTo(rect1.left,oyf); pDC1->LineTo(rect1.left+W1,oyf); pDC1->TextOut(oxf,oyf+5,L"0"); pDC1->TextOut(oxf+StepX1*16*M/8-StepX1*3,oyf+5,L"0.25¦Ð"); pDC1->TextOut(oxf+StepX1*16*M/4-StepX1*3,oyf+5,L"0.5¦Ð"); pDC1->TextOut(oxf+StepX1*16*M*3/8-StepX1*3,oyf+5,L"0.75¦Ð"); pDC1->TextOut(oxf+StepX1*16*M/2-StepX1*3,oyf+5,L"¦Ð"); pDC1->SelectObject(&pen1); pDC1->MoveTo(oxf,oyf); for(i=0;i<(16*M)/2;i++) { pDC1->MoveTo(oxf+StepX1*i,oyf); pDC1->LineTo(oxf+StepX1*i,int(oyf-StepY1*Frep[i])); } } //»Í¼£¨µÍͨÂ˲¨Æ÷ºÍ´øͨÂ˲¨Æ÷ÌØÐÔͼ£© voidCASKDlg: : Graph0(floatS[],floatFrep[]) { CWnd*pWnd=GetDlgItem(IDC_T); CDC*pDC=pWnd->GetDC(); CRectrect; pWnd->GetClientRect(rect); intW=rect.Width();//»Í¼ÇøÓò¿í¶È intH=rect.Height();//»Í¼ÇøÓò¸ß¶È //ÉèÖñ³¾°É« RedrawWindow(); CBrushnewbrush; newbrush.CreateSolidBrush(RGB(255,255,255)); pDC->Rectangle(rect); intStepX=int((W-1)/(N)); doublemaxt=findmax(S,(N)); doubleStepY=(H/2-10)/(fabs(maxt)); //È·¶¨»Í¼ÆðʼλÖà intox=int((W-(N)*StepX)/2); intoyt=rect.bottom-int(H/2); //»×ø±ê CPenCoordinatePen,pen; CoordinatePen.CreatePen(PS_SOLID,1,RGB(0,255,0)); pen.CreatePen(PS_SOLID,1,RGB(0,0,0)); pDC->SelectObject(&CoordinatePen); pDC->MoveTo(rect.left,oyt); pDC->LineTo(rect.left+W,oyt); pDC->SelectObject(&pen); pDC->MoveTo(ox,oyt); for(inti=0;i<(N);i++) { pDC->LineTo(ox+i*StepX,int(oyt-StepY*S[i])); } //ƵÆ×ͼ CWnd*pWnd1=GetDlgItem(IDC_F); CDC*pDC1=pWnd1->GetDC(); CRectrect1; pWnd1->GetClientRect(rect1); intW1=rect1.Width();//»Í¼ÇøÓò¿í¶È intH1=rect1.Height();//»Í¼ÇøÓò¸ß¶È CBrushnewbrush1; newbrush1.CreateSolidBrush(RGB(255,255,255)); pDC1->Rectangle(rect1); //×ø±ê¶¨Î» intStepX1=int(2*(W1-1)/(N)); floatmaxt1=findmax(Frep,int((N)/2)); floatStepY1=(4*H1/5-10)/((float)fabs(maxt1)); //È·¶¨»Í¼ÆðʼλÖà intoxf=int((W1-(N)*StepX1/2)/2); intoyf=rect1.bottom-int(H1/5); CPenCoordinatePen1,pen1; CoordinatePen1.CreatePen(PS_SOLID,1,RGB(0,255,0)); pen1.CreatePen(PS_SOLID,1,RGB(0,0,0)); pDC1->SelectObject(&CoordinatePen1); //»×ø±ê pDC1->MoveTo(rect1.left,oyf); pDC1->LineTo(rect1.left+W1,oyf); pDC1->TextOut(oxf,oyf+5,L"0"); pDC1->TextOut(oxf+StepX1*N/8-StepX1*3,oyf+5,L"0.25¦Ð"); pDC1->TextOut(oxf+StepX1*N/4-StepX1*3,oyf+5,L"0.5¦Ð"); pDC1->TextOut(oxf+StepX1*N*3/8-StepX1*3,oyf+5,L"0.75¦Ð"); pDC1->TextOut(oxf+StepX1*N/2-StepX1*3,oyf+5,L"¦Ð"); pDC1->SelectObject(&pen1); pDC1->MoveTo(oxf,oyf); for(i=0;i<(N)/2;i++) { pDC1->MoveTo(oxf+StepX1*i,oyf); pDC1->LineTo(oxf+StepX1*i,int(oyf-StepY1*Frep[i])); } }*/ floatfindmax(floatx[],intm) { inti; floatt=x[0]; for(i=0;i { if(x[i]>=t) t=x[i]; } returnt; } voidCASKDlg: : Graph(floatS[],floatFrep[]) { CWnd*pWnd=GetDlgItem(IDC_T); CDC*pDC=pWnd->GetDC(); CRectrect; pWnd->GetClientRect(rect); intW=rect.Width();//»Í¼ÇøÓò¿í¶È intH=rect.Height();//»Í¼ÇøÓò¸ß¶È //ÉèÖñ³¾°É« RedrawWindow(); CBrushnewbrush; newbrush.CreateSolidBrush(RGB(255,255,255)); pDC->Rectangle(rect); //pDC->FillRect(rect,&newbrush); intStepX=int((W-1)/(16*M)); doublemaxt=findmax(S,(16*M)); doubleStepY=(H/2-10)/(fabs(maxt)); //È·¶¨»Í¼ÆðʼλÖà intox=int((W-(16*M)*StepX)/2); intoyt=rect.bottom-int(H/2); //»×ø±ê CPenCoordinatePen,pen; CoordinatePen.CreatePen(PS_SOLID,1,RGB(0,25
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASKDlg