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; 
	} 
}