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

📄 mainwnd.cpp

📁 Windows Mobile 手机短信订购软件源程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// MainWnd.cpp: implementation of the CMainWnd class.
//
//////////////////////////////////////////////////////////////////////


#include "stdafx.h"
#include "MainWnd.h"
#include <Tpcshell.h>
#include <winuserm.h>
#include "EditSmsDlg.h"


#define TAPI_API_LOW_VERSION    0x00020000
#define TAPI_API_HIGH_VERSION   0x00020000
#define EXT_API_LOW_VERSION     0x00010000
#define EXT_API_HIGH_VERSION    0x00010000

//BOOL CALLBACK	EditDlgProc( HWND  hDlg,UINT uMsg, WPARAM  wParam, LPARAM  lParam) ;

BOOL bCloseFlag = TRUE;
CStringList m_slCodeList;//指令集
int ItemEntry[8]={0};
int ItemCity[9]={0};
extern int m_layer,m_item,m_index,m_index1,m_index0,m_index2,m_index3,m_index4,m_index5;
extern int m_offset;
extern CEditSMSDlg dlg;
CString   MailTo;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMainWnd::CMainWnd()
{
	/*
	CRegKey reg;
	TCHAR szKey [512];
	long   lRet;
    TCHAR      dVal[MAX_PATH]={0};
	unsigned long len=MAX_PATH;
	wsprintf ( szKey, _T("ControlPanel\\PhoneNetSelMode"));
	//lRet = reg.Create ( HKEY_CURRENT_USER, szKey, REG_NONE, REG_OPTION_NON_VOLATILE,NULL,NULL,NULL);

	lRet = reg.Create ( HKEY_CURRENT_USER, szKey, REG_NONE, REG_OPTION_NON_VOLATILE,
						KEY_SET_VALUE );
	if(reg.QueryValue(dVal,L"ManualNet",&len)==ERROR_SUCCESS)
	{
		if(wcsicmp(dVal, L"46000")==0)            //中国移动
		{
			MailTo.Format(_T("%d"),8001);
 
		}
		if(wcsicmp(dVal, L"46001")==0) 	          //中国联通
		{
			MailTo.Format(_T("%d"),9866);
		}
	}else
	{
			reg.SetValue(L"46000",L"ManualNet");
			MailTo.Format(_T("%d"),8001);
	}
*/

	ItemEntry[0]=9;
	ItemEntry[1]=8;
	ItemEntry[2]=4;
	ItemEntry[3]=6;
	ItemEntry[4]=4;
	ItemEntry[5]=3;
	ItemEntry[6]=5;
	ItemEntry[7]=0;	

	ItemCity[0]=5;
	ItemCity[1]=10;
	ItemCity[2]=9;
	ItemCity[3]=5;
	ItemCity[4]=5;
	ItemCity[5]=6;
	ItemCity[6]=1;
	ItemCity[7]=1;
	ItemCity[8]=0;
    m_slCodeList.RemoveAll();
}

CMainWnd::~CMainWnd()
{
  m_slCodeList.RemoveAll();
}

LRESULT CMainWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	// Create the Menu Bar.
	SHMENUBARINFO mbi;
	memset(&mbi, 0, sizeof(mbi)); 
	mbi.cbSize = sizeof(mbi);
	mbi.hwndParent = m_hWnd;
	mbi.nToolBarId = IDR_MAINMENU;
	mbi.hInstRes = _Module.GetResourceInstance();

	if(!::SHCreateMenuBar(&mbi))
	{
		ATLTRACE(_T("Failed to create menu bar.\n"));
		return -1;
	}

	m_hMenuBar = mbi.hwndMB;
    SendMessage(m_hMenuBar, SHCMBM_OVERRIDEKEY, VK_TBACK, 
          MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));

	// Line
    DWORD							dwNumDevs ;
    DWORD							dwAPIVersion = TAPI_API_HIGH_VERSION ;
    LINEINITIALIZEEXPARAMS			liep ;
    HLINEAPP						hLineApp = 0 ;
    HLINE							hLine = 0 ;

    DWORD							dwTAPILineDeviceID ;
	const DWORD						dwMediaMode = LINEMEDIAMODE_DATAMODEM | LINEMEDIAMODE_INTERACTIVEVOICE;

    // set the line init params
    liep.dwTotalSize = sizeof(liep) ;
    liep.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT ;

	lineInitializeEx( &hLineApp , 0 , 0 , NULL , &dwNumDevs , &dwAPIVersion , &liep );
    dwTAPILineDeviceID = GetTSPLineDeviceID( hLineApp , dwNumDevs , TAPI_API_LOW_VERSION , 
                                             TAPI_API_HIGH_VERSION , CELLTSP_LINENAME_STRING ) ;

    lineOpen( hLineApp , dwTAPILineDeviceID , &hLine , dwAPIVersion , 0 , 0 , 
				   /*Add*/LINECALLPRIVILEGE_MONITOR + LINECALLPRIVILEGE_OWNER , 
				   dwMediaMode , 0 );

	LINEOPERATOR		LineOperator ;
	LineOperator.dwIndex = LINEOPERATOR_USEFIRSTAVAILABLEINDEX ;
	
	if ( 0 == lineGetCurrentOperator( hLine , &LineOperator ) ){

		if(wcsicmp(LineOperator.lpszNumName , L"46000")==0)               //中国移动
		{
			MailTo.Format(_T("%d"),8001);

		}else if(wcsicmp(LineOperator.lpszNumName , L"46001")==0) 	       //中国联通
		{
			MailTo.Format(_T("%d"),9866);
		}
	}
	SetWindowText(g_sAppName);
	GetText();

    RECT rc;
	GetClientRect(&rc);

	m_list.Create(m_hWnd, rc);
	m_list.LoadNameList(0,0);
    m_list.ScrollToIndex(0);
	m_brEdit.CreateSolidBrush(RGB(128,255,255));
	/*
	CEdit edit;
	CRect rcEdit(0,-20,80,0);
	edit.Create(m_hWnd,rcEdit,L"",WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL,0,IDC_EDITFIND,0);

	m_FindEdit.SubclassWindow(edit);
	m_FindEdit.SetFocus();
	m_FindEdit.m_hWndListCtrl = m_list.m_hWnd;

//	m_list.m_pEditFind = &m_FindEdit;

	LOGFONT lf;
	memset(&lf,0,sizeof(LOGFONT));
	lf.lfHeight = 16;
	lf.lfWeight = FW_BOLD;
	m_ftEdit.CreateFontIndirect(&lf);
	m_FindEdit.SetFont(m_ftEdit);


*/
	return 0;
}

LRESULT CMainWnd::OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	CPaintDC dc(m_hWnd);
	CRect rect;
	GetClientRect(rect);
	dc.DrawText(_T("www.smartphonedn.com"), 
		-1, rect, DT_CENTER|DT_VCENTER);

	return 0;
}

LRESULT CMainWnd::OnAction(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	int tempnum=0;
	int curnum=0;
	int j;
	if(m_layer<4){
			int nSelIndex = m_list.GetNextItem(-1,LVNI_SELECTED);
			if(nSelIndex<0) 
				return 0;
			switch(m_layer)
			{
			case 0:	
			   if(nSelIndex==7)
			   {
				m_list.SendSMS(183);
				 return 0;
			   }else{
				m_index=nSelIndex;
				m_item=nSelIndex;		
				m_layer++;
				m_list.DeleteAllItems();
				m_list.LoadNameList(m_layer,m_item);
				return 0;
			   }
			break;
			case 1:
				if(m_index==0){
					m_index1=nSelIndex;
				}else if(m_index==1){
					m_index0=nSelIndex;
				}else if(m_index==3){
					m_index2=nSelIndex;
				}
				m_index3=nSelIndex;
				m_item=nSelIndex;		
				m_layer++;
				m_list.DeleteAllItems();
				m_list.LoadNameList(m_layer,m_item);
			break;

			case 2:
				switch(m_index){
					case 0:
						if(m_index1<6)
						{
							m_index4=nSelIndex;
							m_item=nSelIndex;		
							m_layer++;
							m_list.DeleteAllItems();
							m_list.LoadNameList(m_layer,m_item);	
						}
						if(m_index1==8){
							 m_list.SendSMS(83);
						}else if(m_index1==7){
							dlg.title.LoadString(IDS_THLAYITEM42+m_offset);
							if(dlg.DoModal()==IDOK)
							{
								m_list.SendSMS(82);
							}
						}else if(m_index1==6){
							 dlg.title.LoadString(IDS_THLAYITEM41+m_offset);
							if(dlg.DoModal()==IDOK)
							{
								m_list.SendSMS(81);
							}

						}
						break;

					case 1:
						if(m_index0<5)
						{
						 curnum+=m_index0;
						 curnum*=3;
						 curnum+=84;
	                     m_list.SendSMS(curnum+nSelIndex);
						}else if(m_index0>5){
							 curnum+=m_index0-6;
							 curnum*=3;
							 curnum+=124;
							 m_list.SendSMS(curnum+nSelIndex);
						}else if(m_index0==5&&nSelIndex==12)
						{				       
							m_list.SendSMS(123);
						}else{
							m_index5=nSelIndex;
							m_item=nSelIndex;		
							m_layer++;
							m_list.DeleteAllItems();
							m_list.LoadNameList(m_layer,m_item);	
						}
						break;
					case 2:
						 curnum+=m_item;
						 curnum*=3;
						 curnum+=130;
						 m_list.SendSMS(curnum+nSelIndex);
						 break;
					case 3:
						if(m_index2<2){
						 curnum+=m_item;
						 curnum*=2;
						 curnum+=146;
						 m_list.SendSMS(curnum+nSelIndex);
						}else if(m_index2<5){
							if(nSelIndex==0){
							 dlg.title.LoadString(IDS_LASTGPTM+m_offset);
								if(m_index2=2){
									if(dlg.DoModal()==IDOK)
										{
											m_list.SendSMS(146);
										}
								}else if(m_index2=3){
									if(dlg.DoModal()==IDOK)
										{
											m_list.SendSMS(148);
										}
								}else
									if(dlg.DoModal()==IDOK)
										{
											m_list.SendSMS(150);
										}


							}else{
							 curnum+=m_item;
							 curnum*=2;
							 curnum+=146;
						     m_list.SendSMS(152+1);
							}
		

						 m_list.SendSMS(curnum+nSelIndex);
						}else{
						 m_list.SendSMS(152+nSelIndex);
						}


						break;
					case 4:
						 curnum+=m_item;
						 curnum*=2;
						 curnum+=155;
						 m_list.SendSMS(curnum+nSelIndex);
						break;
					case 5:
						 curnum+=m_item;
						 curnum*=2;
						 curnum+=163;
						 m_list.SendSMS(curnum+nSelIndex);
						break;
					case 6:
						if(m_item==4){
						 curnum=181;
						 m_list.SendSMS(curnum+nSelIndex);
						}else{
						 curnum+=m_item;
						 curnum*=3;
						 curnum+=169;
						 m_list.SendSMS(curnum+nSelIndex);
						}
						break;

					}

			   return 0;
			break;
			case 3:
				if(m_index==0){
					for(j=0;j<m_index1;j++)
					{       
					  curnum +=ItemCity[j];
					}  
					curnum+=m_item;
					curnum*=2;
				    m_list.SendSMS(curnum+nSelIndex);
				}else if(m_index==1&&m_index0==5)
					 curnum+=m_item;
				     curnum*=2;
                     curnum+=99;
				     m_list.SendSMS(curnum+nSelIndex);
				   return 0;
			break;
			}

		}
	

⌨️ 快捷键说明

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