📄 main.cpp
字号:
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 + -