www.pudn.com > QRAPPuie.rar > MyEdit.cpp
// MyEdit.cpp : implementation file
//
#include "stdafx.h"
#include "QRAPP2.h"
#include "MyEdit.h"
#include "astdtapi.h"
#include "Bookmarknoticedlg.h"
// CMyEdit
IMPLEMENT_DYNAMIC(CMyEdit, CEdit)
CMyEdit::CMyEdit()
: Isphonenum(FALSE)
, Isemail(FALSE)
, Isurl(FALSE)
{
}
CMyEdit::~CMyEdit()
{
}
BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_MENU_CALL, &CMyEdit::OnMenuCall)
ON_COMMAND(ID_MENU_SEND, &CMyEdit::OnMenuSend)
ON_COMMAND(ID_MENU_VISISTURL, &CMyEdit::OnMenuVisisturl)
ON_COMMAND(ID_MENU_ADDBOOKMARK, &CMyEdit::OnMenuAddbookmark)
END_MESSAGE_MAP()
// CMyEdit message handlers
void CMyEdit::OnContextMenu(CWnd* pWnd , CPoint point )
{
// TODO: Add your message handler code here
CMenu menu;
menu.LoadMenuW(IDR_MENU_CARDCONTEXT);
if (Isphonenum == TRUE)
{
//phone menu
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_SEND,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_VISISTURL,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_ADDBOOKMARK,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,pWnd);
}
else
{
if (Isemail == TRUE)
{
//email menu
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_CALL,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_VISISTURL,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_ADDBOOKMARK,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,pWnd);
}
else
{
if (Isurl == TRUE)
{
//url bookmark menu
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_CALL,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->EnableMenuItem(ID_MENU_SEND,MF_DISABLED|MF_GRAYED);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,pWnd);
}
}
}
}
void CMyEdit::OnMenuCall()
{
// TODO: Add your command handler code here
LONG lResult;
CString phonenum;
GetWindowTextW(phonenum);
lResult = tapiRequestMakeCall(phonenum,NULL,NULL,NULL);
}
void CMyEdit::OnMenuSend()
{
// TODO: Add your command handler code here
PROCESS_INFORMATION pi;
TCHAR szFileName[MAX_PATH];
TCHAR szCmdLine[164];
DWORD dwCreationFlags=0;
CString emailaddress;
GetWindowTextW(emailaddress); ///??
lstrcpy(szFileName,TEXT("\\windows\\tmail.exe"));
lstrcpy(szCmdLine,TEXT("mailto:"));
lstrcat(szCmdLine,emailaddress);//TEXT("mailto:yaolj_sh@amoi.com.cn ")
BOOL rc;
rc = CreateProcess(szFileName,szCmdLine,NULL,NULL,FALSE,dwCreationFlags,NULL,NULL,NULL,&pi); ///
if (rc)
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
}
void CMyEdit::OnMenuVisisturl()
{
// TODO: Add your command handler code here
PROCESS_INFORMATION pi;
CString url;
GetWindowTextW(url);
//全角==>半角 url
BOOL rc = CreateProcess(TEXT("iexplore.exe"),url,NULL,NULL, FALSE, 0,NULL,NULL,NULL, &pi);
if (rc)
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
}
void CMyEdit::OnMenuAddbookmark()
{
// TODO: Add your command handler code here
CBookmarknoticedlg dlg;
dlg.m_bFullScreen = FALSE;
if (IDCANCEL == dlg.DoModal())
return;
LPCTSTR pszName = dlg.m_szInputcontent; ///
//TEXT("www.google.com") m_szUrl
TCHAR pszBuf[_MAX_PATH];
if (!SHGetSpecialFolderPath(NULL,pszBuf,CSIDL_FAVORITES, TRUE))
return ; //error return
// Make file name.
lstrcat(pszBuf,_T("\\"));
lstrcat(pszBuf,pszName);
lstrcat(pszBuf,_T(".url"));
if (GetFileAttributes(pszBuf) != 0xFFFFFFFF)
{
// File exists. Do not overwrite it.
if (AfxMessageBox(TEXT("您所输入的快捷方式名称已在收藏夹菜单上,是否覆盖"),MB_YESNO)==IDNO)
return;
else
DeleteFile(pszBuf);
}
// Create *.url file.
CString szurl;
GetWindowTextW(szurl);
FILE *pFile = _tfopen(pszBuf, _T("wt"));
if (pFile == NULL)
return ; //
// TCHAR strputtofile[100] = {0};
int strputtofilemaxlen = lstrlen(szurl)+35;
TCHAR *strputtofile = new TCHAR[strputtofilemaxlen];
ZeroMemory(strputtofile,sizeof(TCHAR)*strputtofilemaxlen);
TCHAR head[] = TEXT("[InternetShortcut]\n");
lstrcpy(strputtofile,head);
lstrcat(strputtofile,TEXT("URL="));
lstrcat(strputtofile,szurl); ///?? &
lstrcat(strputtofile,TEXT("\n"));
int result =_fputts(strputtofile, pFile);
fclose(pFile);
delete []strputtofile;
strputtofile = NULL;
if (result ==WEOF)
{
AfxMessageBox(TEXT("书签保存失败"),0,0);
return;
}
else
{
AfxMessageBox(TEXT("书签保存成功"),0,0);
return;
}
}