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

📄 parameter.c

📁 VC写的对DTMF信号的识别程序
💻 C
字号:
// PARAMETER.C (c) 2004 Howard Long (G6LVB), Hanlincrest Ltd. All rights reserved.
// 72 Princes Gate
// London SW7 2PA
// United Kingdom
// howard@hanlincrest.com
// Free for educational and non-profit use. For commercial use please contact the author.

#define PARM_MAXPARAMETERS 5

#include <windows.h>
#include <stdio.h>

#include "resource.h"

#include "registry.h"
#include "parameter.h"

static BOOL ParameterSetString(HWND hdlg,char *pszKey,int nDlgID)
{
	char sz[30];

	GetDlgItemText(hdlg,nDlgID,sz,sizeof(sz));
	return RegSetString(pszKey,sz);
}

static BOOL ParameterGetString(HWND hdlg,char *pszKey,int nDlgID)
{
	char sz[30];

	if (!RegGetString(pszKey,sz,sizeof(sz)))
	{
		SetDlgItemText(hdlg,nDlgID,"");
		return FALSE;
	}

	SetDlgItemText(hdlg,nDlgID,sz);
	return TRUE;
}

static LRESULT CALLBACK ParameterDlg(HWND hdlg,UINT message,WPARAM wParam,LPARAM lParam)
{
	switch (message) 
	{
		case WM_INITDIALOG:
			ParameterGetString(hdlg,"NumParameters",IDC_NUM_PARAMETERS);

			ParameterGetString(hdlg,"ParameterName1",IDC_PARAMETER_NAME1);
			ParameterGetString(hdlg,"ParameterOffset1",IDC_PARAMETER_OFFSET1);
			ParameterGetString(hdlg,"ParameterMultiplier1",IDC_PARAMETER_MULTIPLIER1);
			ParameterGetString(hdlg,"ParameterUnits1",IDC_PARAMETER_UNITS1);

			ParameterGetString(hdlg,"ParameterName2",IDC_PARAMETER_NAME2);
			ParameterGetString(hdlg,"ParameterOffset2",IDC_PARAMETER_OFFSET2);
			ParameterGetString(hdlg,"ParameterMultiplier2",IDC_PARAMETER_MULTIPLIER2);
			ParameterGetString(hdlg,"ParameterUnits2",IDC_PARAMETER_UNITS2);

			ParameterGetString(hdlg,"ParameterName3",IDC_PARAMETER_NAME3);
			ParameterGetString(hdlg,"ParameterOffset3",IDC_PARAMETER_OFFSET3);
			ParameterGetString(hdlg,"ParameterMultiplier3",IDC_PARAMETER_MULTIPLIER3);
			ParameterGetString(hdlg,"ParameterUnits3",IDC_PARAMETER_UNITS3);

			ParameterGetString(hdlg,"ParameterName4",IDC_PARAMETER_NAME4);
			ParameterGetString(hdlg,"ParameterOffset4",IDC_PARAMETER_OFFSET4);
			ParameterGetString(hdlg,"ParameterMultiplier4",IDC_PARAMETER_MULTIPLIER4);
			ParameterGetString(hdlg,"ParameterUnits4",IDC_PARAMETER_UNITS4);

			ParameterGetString(hdlg,"ParameterName5",IDC_PARAMETER_NAME5);
			ParameterGetString(hdlg,"ParameterOffset5",IDC_PARAMETER_OFFSET5);
			ParameterGetString(hdlg,"ParameterMultiplier5",IDC_PARAMETER_MULTIPLIER5);
			ParameterGetString(hdlg,"ParameterUnits5",IDC_PARAMETER_UNITS5);
			break;

		case WM_COMMAND:
			switch (LOWORD(wParam))
			{
				case IDOK:
					{
						char szNumParms[30];
						int n;

						GetDlgItemText(hdlg,IDC_NUM_PARAMETERS,szNumParms,sizeof(szNumParms));
						n=atoi(szNumParms);
						if (n<=0 || n>PARM_MAXPARAMETERS)
						{
							char szMessage[100];

							sprintf(szMessage,"Number of parameters must be between 1 and %d.",PARM_MAXPARAMETERS);
							MessageBox(hdlg,szMessage,"DTMFFFT",MB_ICONEXCLAMATION | MB_OK);
							return FALSE;
						}
					}
					ParameterSetString(hdlg,"NumParameters",IDC_NUM_PARAMETERS);

					ParameterSetString(hdlg,"ParameterName1",IDC_PARAMETER_NAME1);
					ParameterSetString(hdlg,"ParameterOffset1",IDC_PARAMETER_OFFSET1);
					ParameterSetString(hdlg,"ParameterMultiplier1",IDC_PARAMETER_MULTIPLIER1);
					ParameterSetString(hdlg,"ParameterUnits1",IDC_PARAMETER_UNITS1);

					ParameterSetString(hdlg,"ParameterName2",IDC_PARAMETER_NAME2);
					ParameterSetString(hdlg,"ParameterOffset2",IDC_PARAMETER_OFFSET2);
					ParameterSetString(hdlg,"ParameterMultiplier2",IDC_PARAMETER_MULTIPLIER2);
					ParameterSetString(hdlg,"ParameterUnits2",IDC_PARAMETER_UNITS2);

					ParameterSetString(hdlg,"ParameterName3",IDC_PARAMETER_NAME3);
					ParameterSetString(hdlg,"ParameterOffset3",IDC_PARAMETER_OFFSET3);
					ParameterSetString(hdlg,"ParameterMultiplier3",IDC_PARAMETER_MULTIPLIER3);
					ParameterSetString(hdlg,"ParameterUnits3",IDC_PARAMETER_UNITS3);

					ParameterSetString(hdlg,"ParameterName4",IDC_PARAMETER_NAME4);
					ParameterSetString(hdlg,"ParameterOffset4",IDC_PARAMETER_OFFSET4);
					ParameterSetString(hdlg,"ParameterMultiplier4",IDC_PARAMETER_MULTIPLIER4);
					ParameterSetString(hdlg,"ParameterUnits4",IDC_PARAMETER_UNITS4);

					ParameterSetString(hdlg,"ParameterName5",IDC_PARAMETER_NAME5);
					ParameterSetString(hdlg,"ParameterOffset5",IDC_PARAMETER_OFFSET5);
					ParameterSetString(hdlg,"ParameterMultiplier5",IDC_PARAMETER_MULTIPLIER5);
					ParameterSetString(hdlg,"ParameterUnits5",IDC_PARAMETER_UNITS5);

					EndDialog(hdlg,TRUE);
					break;
				case IDCANCEL:
					EndDialog(hdlg,FALSE);
					break;
				default:
					break;
			}
			break;
		default:
			break;
	}
	return FALSE;
}

BOOL Parameter(HWND hdlg, HINSTANCE hinst)
{
	return (BOOL)DialogBox(hinst,MAKEINTRESOURCE(IDD_PARAMETERS),hdlg,ParameterDlg);
}

⌨️ 快捷键说明

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