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

📄 main.cpp

📁 NetTalk是一个适用于局域网和因特网的可视电话软件 一.开发环境 Windows2000 Server & Visual C++6.0 & SDK +自开发的CWndX类库(相当于简化的MF
💻 CPP
📖 第 1 页 / 共 4 页
字号:
				
				if(GetPrivateProfileString("recent",szI,"",szStr,256,"NetTalk.ini"))
				{
					SendMessage(GetDlgItem(m_hWnd,IDC_IP),CB_INSERTSTRING,0,(LPARAM)szStr);
					
				}				
				
			}
			SendMessage(GetDlgItem(m_hWnd,IDC_IP),CB_SETCURSEL,0,0);
			
		}
		break;
	case WM_ERASEBKGND:
		{
			CGraphDlg::OnEraseBkgnd((HDC)wParam);
			DrawIcon((HDC)wParam,10,28,LoadIcon(hInstX,LPCTSTR(IDI_PHONE)));
		}
		break;
	case WM_CLOSE:
		{
			EndDialog(m_hWnd,FALSE);
		}
		break;	
	default:
		return CGraphDlg::WndProc(uMsg,wParam,lParam);
	}
	return TRUE;
}
/*------------------------------------------------------------------------------*/
//implementation of setup dlg
CSetupDlg::CSetupDlg()
{
}
/*------------------------------------------------------------------------------*/
CSetupDlg::~CSetupDlg()
{
}
/*------------------------------------------------------------------------------*/
LRESULT CSetupDlg::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{	
	case WM_DESTROY:
		CGraphDlg::OnDestroy();
		PlaySound(0,0,0);
		break;
	case WM_INITDIALOG:
		
		return OnInitDialog();
		break;
	case WM_COMMAND:
		return OnCommand(wParam,lParam);
		
		break;
		
	default:
		return CGraphDlg::WndProc(uMsg,wParam,lParam);
	}
	return TRUE;	
	
}
/*------------------------------------------------------------------------------*/

void CSetupDlg::LoadSetup()
{

	Setup.bAutoRun=(BOOL)GetPrivateProfileInt("setup","auto",0,"NetTalk.ini");
	Setup.bInitShow=(BOOL)GetPrivateProfileInt("setup","initshow",0,"NetTalk.ini");
	Setup.bMiniHide=(BOOL)GetPrivateProfileInt("setup","minihide",1,"NetTalk.ini");
	Setup.bRing=(BOOL)GetPrivateProfileInt("setup","playring",1,"NetTalk.ini");
	Setup.bRingUser=(BOOL)GetPrivateProfileInt("setup","ringuser",0,"NetTalk.ini");
	Setup.bAutoMsg=(BOOL)GetPrivateProfileInt("setup","automsg",1,"NetTalk.ini");
	Setup.bRefuseCall=(BOOL)GetPrivateProfileInt("setup","refusecall",0,"NetTalk.ini");
	Setup.bBandAdjust=(BOOL)GetPrivateProfileInt("setup","bandadjust",1,"NetTalk.ini");
	Setup.wHotKey=0xffff&GetPrivateProfileInt("setup","hotkey",MAKEWORD('A',HOTKEYF_ALT|HOTKEYF_CONTROL),"NetTalk.ini");
	
	GetPrivateProfileString("setup","ringpath","",Setup.szRingPath,sizeof(Setup.szRingPath),"NetTalk.ini");

}
/*------------------------------------------------------------------------------*/
void CSetupDlg::SaveSetup()
{
	char sz[20];
	sz[1]=0;
	WritePrivateProfileString("setup","auto",sz,"NetTalk.ini");
	if(Setup.bInitShow)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","initshow",sz,"NetTalk.ini");
	if(Setup.bMiniHide)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","minihide",sz,"NetTalk.ini");
	if(Setup.bRing)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","playring",sz,"NetTalk.ini");
	if(Setup.bRingUser)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","ringuser",sz,"NetTalk.ini");
	if(Setup.bAutoMsg)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","automsg",sz,"NetTalk.ini");
	if(Setup.bRefuseCall)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","refusecall",sz,"NetTalk.ini");
	if(Setup.bBandAdjust)
		sz[0]='1';
	else
		sz[0]='0';
	WritePrivateProfileString("setup","bandadjust",sz,"NetTalk.ini");

	sprintf(sz,"%d",Setup.wHotKey);	
	WritePrivateProfileString("setup","hotkey",sz,"NetTalk.ini");
	
	WritePrivateProfileString("setup","ringpath",Setup.szRingPath,"NetTalk.ini");
	
}
/*------------------------------------------------------------------------------*/
BOOL CSetupDlg::OnInitDialog()
{
	CGraphDlg::OnInitDialog();
	SetWindowText(m_hWnd,"NetTalk设置");
	if(Setup.bAutoRun)
		SendMessage(GetDlgItem(m_hWnd,IDC_AUTORUN),BM_SETCHECK,BST_CHECKED,0);
	if(Setup.bInitShow)
		SendMessage(GetDlgItem(m_hWnd,IDC_INITSHOW),BM_SETCHECK,BST_CHECKED,0);
	if(Setup.bMiniHide)
		SendMessage(GetDlgItem(m_hWnd,IDC_MINIHIDE),BM_SETCHECK,BST_CHECKED,0);
	if(Setup.bRing)
		SendMessage(GetDlgItem(m_hWnd,IDC_PLAYRING),BM_SETCHECK,BST_CHECKED,0);
	if(Setup.bRingUser)
		SendMessage(GetDlgItem(m_hWnd,IDC_USERRING),BM_SETCHECK,BST_CHECKED,0);
	
	if(Setup.bAutoMsg)
		SendMessage(GetDlgItem(m_hWnd,IDC_AUTOMSG),BM_SETCHECK,BST_CHECKED,0);
	if(Setup.bRefuseCall)
		SendMessage(GetDlgItem(m_hWnd,IDC_REFUSECALL),BM_SETCHECK,BST_CHECKED,0);
	if(Setup.bBandAdjust)
		SendMessage(GetDlgItem(m_hWnd,IDC_BANDADJUST),BM_SETCHECK,BST_CHECKED,0);
	EnableWindow(GetDlgItem(m_hWnd,IDC_PLAY),Setup.bRingUser);
	EnableWindow(GetDlgItem(m_hWnd,IDC_BROWSE),Setup.bRingUser);
	SendDlgItemMessage(m_hWnd,IDC_HOTKEY,HKM_SETHOTKEY,Setup.wHotKey,0);
	return FALSE;
}
/*------------------------------------------------------------------------------*/
BOOL CSetupDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
	CGraphDlg::OnCommand(wParam,lParam);
	switch(LOWORD(wParam))
	{
	case IDC_OK:
		{	

			Setup.wHotKey=(WORD)SendDlgItemMessage(m_hWnd,IDC_HOTKEY,HKM_GETHOTKEY,0,0);
			SaveSetup();
			OnOK();
			SendMessage(GetParent(m_hWnd),WM_USER_SETUP,0,(LPARAM)&Setup);
		}
		break;
	case IDC_AUTORUN:		
		Setup.bAutoRun^=1;		
		break;
	case IDC_INITSHOW:
		Setup.bInitShow^=1;
		break;
	case IDC_MINIHIDE:
		Setup.bMiniHide^=1;
		break;
	case IDC_PLAYRING:
		Setup.bRing^=1;
		break;
	case IDC_USERRING:
		Setup.bRingUser^=1;
		EnableWindow(GetDlgItem(m_hWnd,IDC_PLAY),Setup.bRingUser);
		EnableWindow(GetDlgItem(m_hWnd,IDC_BROWSE),Setup.bRingUser);
		break;
	case IDC_AUTOMSG:
		Setup.bAutoMsg^=1;
		break;
	case IDC_REFUSECALL:
		Setup.bRefuseCall^=1;
		break;
	case IDC_BANDADJUST:
		Setup.bBandAdjust^=1;
		break;
	case IDC_CANCEL:
		OnCancel();
		break;
	case IDC_BROWSE:
		{
			OPENFILENAME ofn;
			ZeroMemory(&ofn,sizeof(ofn));
			ofn.lStructSize=sizeof(ofn);
			ofn.hInstance=GetModuleHandle(0);
			ofn.hwndOwner=m_hWnd;
			char szFilter[100];
			char* p=szFilter;
			strcpy(p,"波形文件(*.wav)");
			p+=strlen(p)+1;
			strcpy(p,"*.wav");
			p+=strlen(p)+1;
			*p=0;
			ofn.lpstrFilter=szFilter;
			char szFile[256]="";
			ofn.lpstrFile=szFile;
			ofn.nMaxFile=256;
			ofn.lpstrTitle="请选择";
			ofn.Flags=OFN_FILEMUSTEXIST;
			
			if(GetOpenFileName(&ofn))
			{
				strcpy(Setup.szRingPath,szFile);
			}
		}
		break;
	case IDC_PLAY:
		PlaySound(Setup.szRingPath,0,SND_FILENAME|SND_ASYNC);
		break;
	}
	return TRUE;
}


/*------------------------------------------------------------------------------*/
//implementation of ring dlg
CRingDlg::CRingDlg()
{

}
/*------------------------------------------------------------------------------*/
CRingDlg::~CRingDlg()
{

}
/*------------------------------------------------------------------------------*/
LRESULT CRingDlg::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_INITDIALOG:
		return OnInitDialog();
		break;
	case WM_DESTROY:
		CGraphDlg::OnDestroy();
		KillTimer(m_hWnd,1);
		PlaySound(0,0,0);
		break;
	case WM_COMMAND:
		return OnCommand(wParam,lParam);
	case WM_ERASEBKGND:
		OnEraseBkgnd((HDC)wParam);
		return TRUE;
	case WM_TIMER:
		CGraphDlg::OnTimer(wParam);
		if(wParam==1&&CSetupDlg::Setup.bRing)
		{
			if(CSetupDlg::Setup.bRingUser)
				PlaySound(CSetupDlg::Setup.szRingPath,0,SND_FILENAME|SND_ASYNC);
			else
				PlaySound(LPCTSTR(IDR_CALL),hInstX,SND_RESOURCE|SND_ASYNC);
		}
		break;
	default:
		return CGraphDlg::WndProc(uMsg,wParam,lParam);
	}
	return TRUE;
}
/*------------------------------------------------------------------------------*/
BOOL CRingDlg::OnInitDialog()
{
	CGraphDlg::OnInitDialog();
	SetWindowText(m_hWnd,m_szCaller);
	char szTxt[256];
	sprintf(szTxt,"%s发来呼叫请求\r\r\n要接受请求吗?",m_szCaller);
	SetDlgItemText(m_hWnd,IDC_TXT,szTxt);
	SetDlgItemText(m_hWnd,IDC_OK,"是(&Y)");
	SetDlgItemText(m_hWnd,IDC_CANCEL,"否(&N)");
	SetTimer(m_hWnd,1,3000,0);
	if(CSetupDlg::Setup.bRing)
	{
		if(CSetupDlg::Setup.bRingUser)
			PlaySound(CSetupDlg::Setup.szRingPath,0,SND_FILENAME|SND_ASYNC);
		else
			PlaySound(LPCTSTR(IDR_CALL),hInstX,SND_RESOURCE|SND_ASYNC);
	}
	SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
	return FALSE;
}
/*------------------------------------------------------------------------------*/
BOOL CRingDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
	CGraphDlg::OnCommand(wParam,lParam);
	switch(LOWORD(wParam))
	{
	case IDC_OK:
		EndDialog(m_hWnd,TRUE);
		break;
	case IDC_CANCEL:
		EndDialog(m_hWnd,FALSE);
		break;
	
	}
	return TRUE;
}

/*------------------------------------------------------------------------------*/

BOOL CRingDlg::DoModal(HWND hParent, char *szCaller)
{
	m_szCaller=szCaller;
	return CGraphDlg::DoModal(LPCTSTR(IDD_MSGBOX),hParent);
}
/*------------------------------------------------------------------------------*/
void CRingDlg::OnEraseBkgnd(HDC hdc)
{
	CGraphDlg::OnEraseBkgnd(hdc);
	DrawIcon(hdc,25,45,LoadIcon(hInstX,LPCTSTR(IDI_GLOBAL)));
}
/*------------------------------------------------------------------------------*/
//implementation of call dlg
CCallDlg::CCallDlg()
{
}
/*------------------------------------------------------------------------------*/
CCallDlg::~CCallDlg()
{

}
/*------------------------------------------------------------------------------*/
LRESULT CCallDlg::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_INITDIALOG:
		return OnInitDialog();
		break;
	case WM_COMMAND:
		return OnCommand(wParam,lParam);
	case WM_ERASEBKGND:
		OnEraseBkgnd((HDC)wParam);
		return TRUE;
	case WM_CLOSE:
		break;
	default:
		return CGraphDlg::WndProc(uMsg,wParam,lParam);
	}
	return TRUE;
}
/*------------------------------------------------------------------------------*/
BOOL CCallDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
	CGraphDlg::OnCommand(wParam,lParam);
	switch(LOWORD(wParam))
	{
	case IDC_CANCEL:
		EndDialog(m_hWnd,FALSE);
		break;
	case IDC_OK:
		EndDialog(m_hWnd,TRUE);
		break;
	}
	return TRUE;
}
/*------------------------------------------------------------------------------*/
void CCallDlg::OnEraseBkgnd(HDC hdc)
{
	CGraphDlg::OnEraseBkgnd(hdc);
	DrawIcon(hdc,25,45,LoadIcon(hInstX,LPCTSTR(IDI_GLOBAL)));
}
/*------------------------------------------------------------------------------*/
BOOL CCallDlg::OnInitDialog()
{
	CGraphDlg::OnInitDialog();
	ShowWindow(m_btnClose,SW_HIDE);
	SetWindowText(m_hWnd,"请稍候");
	char szTxt[128];
	sprintf(szTxt,"正在连接计算机  %s...",m_szDst);
	SetDlgItemText(m_hWnd,IDC_TXT,szTxt);
	ShowWindow(GetDlgItem(m_hWnd,IDC_OK),SW_HIDE);
	ShowWindow(GetDlgItem(m_hWnd,IDC_CANCEL),SW_HIDE);
	SetDlgItemText(m_hWnd,IDC_CANCEL,"取消");
	SetDlgItemText(m_hWnd,IDC_OK,"确定");
	return TRUE;

}
/*------------------------------------------------------------------------------*/
BOOL CCallDlg::DoModal(HWND hParent, char *szDst)
{
	m_szDst=szDst;
	return CGraphDlg::DoModal(LPCTSTR(IDD_MSGBOX),hParent);
}
/*------------------------------------------------------------------------------*/
//when connected,
void CCallDlg::Connected()
{
	if(IsWindow(m_hWnd))
	{
		char szTxt[]="已经连接到目标计算机\r\r\n请等待对方回应...";
		SetDlgItemText(m_hWnd,IDC_TXT,szTxt);
		
		ShowWindow(GetDlgItem(m_hWnd,IDC_CANCEL),SW_SHOW);
		EnableWindow(GetDlgItem(m_hWnd,IDC_OK),FALSE);
	}
}
/*------------------------------------------------------------------------------*/
//fail to connect
void CCallDlg::FailConnect()
{
	if(IsWindow(m_hWnd))
	{
		char szTxt[]="无法连接到目标计算机";
		SetDlgItemText(m_hWnd,IDC_TXT,szTxt);
		
		ShowWindow(GetDlgItem(m_hWnd,IDC_OK),SW_SHOW);
		
	}

}
/*------------------------------------------------------------------------------*/
//the request is refused by user
void CCallDlg::Refuse()
{
	if(IsWindow(m_hWnd))
	{
		char szTxt[]="对方拒绝了您的通话请求";
		SetDlgItemText(m_hWnd,IDC_TXT,szTxt);
		
		ShowWindow(GetDlgItem(m_hWnd,IDC_OK),SW_SHOW);
		ShowWindow(GetDlgItem(m_hWnd,IDC_CANCEL),SW_HIDE);
		
	}
}
/*------------------------------------------------------------------------------*/
//the request is refuse for NetTalk is busy
void CCallDlg::Busy()
{
	if(IsWindow(m_hWnd))
	{
		char szTxt[]="对方NetTalk繁忙,您的通话被拒绝";
		SetDlgItemText(m_hWnd,IDC_TXT,szTxt);
		
		ShowWindow(GetDlgItem(m_hWnd,IDC_OK),SW_SHOW);
		
	}
}
/*------------------------------------------------------------------------------*/
//the implementation of credit dlg
LRESULT CCreditDlg::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_CTLCOLORDLG :
		return (LRESULT)GetStockObject(BLACK_BRUSH);
		break;
		//set the color the static ctrl
	case WM_CTLCOLORSTATIC:

		SetTextColor((HDC)wParam,0x00ffb093);
		SetBkMode((HDC)wParam,TRANSPARENT);
		return (LRESULT)GetStockObject(BLACK_BRUSH);
		break;
	

	default:
		return CDialogX::WndProc(uMsg,wParam,lParam);
	}
	return TRUE;
}
/*------------------------------------------------------------------------------*/
BOOL CCreditDlg::Create(HWND hParent)
{
	return CDialogX::Create((LPCTSTR)IDD_CREDITDLG,hParent);

}

⌨️ 快捷键说明

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