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

📄 customerservice.cpp

📁 windows mobile 中国移动定制程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// CustomerService.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "CustomerService.h"
#include <windows.h>
#include <commctrl.h>
#include <astdtapi.h>
#include "ril.h"

#define MAX_LOADSTRING 100

// 全局变量:
HINSTANCE			g_hInst;			// 当前实例
HWND				g_hWndMenuBar;		// 菜单栏句柄
 HWND hWnd;
HWND  g_hwndBasicDialog = 0;
HWND hWndListView;
HWND hDlgSetUp;
HANDLE g_hEvent;
bool gCall;
HRESULT AddForward = NULL;
HRESULT AddForwardDisable = NULL;
HRESULT AddForwardBusy = NULL;
HRESULT AddForwardNoAnswer = NULL;
   HRIL hRil = NULL;
   int gCount =0;
   bool gFlag = false;
  bool gSetUpTelephone = false;
HCURSOR hOldCursor;
// 此代码模块中包含的函数的前向声明:
ATOM			MyRegisterClass(HINSTANCE, LPTSTR);
BOOL			InitInstance(HINSTANCE, int);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK	About(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK HotLine(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hManagerTelephone(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hClub(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hWyDearmWeb(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hDreamWebSMS(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hDreamWebMMS(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hMobileSecretary(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hSMSForYou(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hTradeAndTour(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hSMSTransfer(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK hSMSTransferSetUp(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
//void InitModelessDialog(HWND hDlg,DWORD IdrMenu);
void ReadTelephoneForRegister(TCHAR szType[],TCHAR szOutName[],TCHAR szOutTelephone[]);
void InitListView(HWND hDlg,DWORD dwListViewID);
HWND CreateListView (HWND hWndParent) ;
void CallForward(TCHAR szForwardTelephone[]);
int  ReadSetUpForRegister(TCHAR szType[]);

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPTSTR    lpCmdLine,
                   int       nCmdShow)
{
	MSG msg;

	// 执行应用程序初始化:
	if (!InitInstance(hInstance, nCmdShow)) 
	{
		return FALSE;
	}

	HACCEL hAccelTable;
	hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_CUSTOMERSERVICE));

	while (GetMessage (&msg, NULL, 0, 0)) {
    if ((g_hwndBasicDialog == 0) || (!IsDialogMessage (g_hwndBasicDialog, &msg))) {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
}


	//// 主消息循环:
	//while (GetMessage(&msg, NULL, 0, 0)) 
	//{
	//	if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
	//	{
	//		TranslateMessage(&msg);
	//		DispatchMessage(&msg);
	//	}
	//}

	return (int) msg.wParam;
}

//
//  函数: MyRegisterClass()
//
//  目的: 注册窗口类。
//
//  注释:
//
ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
{
	WNDCLASS wc;

	wc.style         = CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc   = WndProc;
	wc.cbClsExtra    = 0;
	wc.cbWndExtra    = 0;
	wc.hInstance     = hInstance;
	wc.hIcon         = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_CUSTOMERSERVICE));
	wc.hCursor       = 0;
	wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName  = 0;
	wc.lpszClassName = szWindowClass;

	return RegisterClass(&wc);
}

//
//   函数: InitInstance(HINSTANCE, int)
//
//   目的: 保存实例句柄并创建主窗口
//
//   注释:
//
//        在此函数中,我们在全局变量中保存实例句柄并
//        创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
    TCHAR szTitle[MAX_LOADSTRING];		// 标题栏文本
    TCHAR szWindowClass[MAX_LOADSTRING];	// 主窗口类名

    g_hInst = hInstance; // 将实例句柄存储在全局变量中

    // 在应用程序初始化期间,应调用一次 SHInitExtraControls 以初始化
    // 所有设备特定控件,例如,CAPEDIT 和 SIPPREF。
    SHInitExtraControls();

    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); 
    LoadString(hInstance, IDC_CUSTOMERSERVICE, szWindowClass, MAX_LOADSTRING);

    //如果它已经在运行,则将焦点置于窗口上,然后退出
    hWnd = FindWindow(szWindowClass, NULL);	
    if (hWnd) 
    {
        // 将焦点置于最前面的子窗口
        // “| 0x00000001”用于将所有附属窗口置于前台并
        // 激活这些窗口。
		
			SetForegroundWindow((HWND)((ULONG) hWnd | 0x00000001));
		
        return 0;
    } 

    if (!MyRegisterClass(hInstance, szWindowClass))
    {
    	return FALSE;
    }

    hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

    if (!hWnd)
    {
        return FALSE;
    }

    // 使用 CW_USEDEFAULT 创建主窗口时,将不会考虑菜单栏的高度(如果创建了一个
    // 菜单栏)。因此,我们要在创建窗口后调整其大小
    // 如果菜单栏存在
    if (g_hWndMenuBar)
    {
        RECT rc;
        RECT rcMenuBar;

        GetWindowRect(hWnd, &rc);
        GetWindowRect(g_hWndMenuBar, &rcMenuBar);
        rc.bottom -= (rcMenuBar.bottom - rcMenuBar.top);
		
        MoveWindow(hWnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, FALSE);
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);


    return TRUE;
}

//
//  函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的: 处理主窗口的消息。
//
//  WM_COMMAND	- 处理应用程序菜单
//  WM_PAINT	- 绘制主窗口
//  WM_DESTROY	- 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;

    static SHACTIVATEINFO s_sai;
	
    switch (message) 
    {
        case WM_COMMAND:
            wmId    = LOWORD(wParam); 
            wmEvent = HIWORD(wParam); 
            // 分析菜单选择:
            switch (wmId)
            {
                 case IDM_SELECT:
                   for (int i = 0; i <5; i++)
					{
						if (ListView_GetItemState( hWndListView,i,LVIS_SELECTED) == LVIS_SELECTED)
						{
							switch(i)
							{
								case 0:
									 DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_CLUB, hWnd, hClub);
								 break;
							 	case 1:
									{
											TCHAR szOutName[30];
											TCHAR szOutTelephone[30];
											ReadTelephoneForRegister(L"HotLine",szOutName,szOutTelephone); 
											if (lstrlen(szOutTelephone) < 2)
											 {
												DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_HOTLINE, hWnd, HotLine);
											  }
											else
											{
												tapiRequestMakeCall (szOutTelephone,NULL,L"客户服务热线",NULL);
											}
									}
								 break;
							 	case 2:
									 {
											TCHAR szOutName[30];
											TCHAR szOutTelephone[30];
											ReadTelephoneForRegister(L"ManagerTelephone",szOutName,szOutTelephone); 
											if (lstrlen(szOutTelephone) < 2)
											 {
												DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_MANAGERTELEPHONE, hWnd, hManagerTelephone);
											  }
											else
											{
												tapiRequestMakeCall (szOutTelephone,NULL,szOutName,NULL);
											}
									}
								 break;
							 	case 3:
									 if (g_hwndBasicDialog == 0)
									 {
										 ShowWindow( hWndListView,SW_HIDE);
									      g_hwndBasicDialog = CreateDialog(g_hInst, (LPCTSTR)IDD_POCKETPC_MOBILESECRETARY, hWnd, hMobileSecretary);
									 }
								 break;
								 case 4:
									 if (g_hwndBasicDialog == 0)
									 {
										 ShowWindow( hWndListView,SW_HIDE);
										 g_hwndBasicDialog = CreateDialog(g_hInst, (LPCTSTR)IDD_POCKETPC_MYDREAMWEB, hWnd, hWyDearmWeb);
									 }
							 }
							   break;
						}
					}
			
                    break;
                case IDM_OK:
                    SendMessage (hWnd, WM_CLOSE, 0, 0);				
                    break;
				 
                default:
                    return DefWindowProc(hWnd, message, wParam, lParam);
            }
            break;
        case WM_CREATE:
            SHMENUBARINFO mbi;

            memset(&mbi, 0, sizeof(SHMENUBARINFO));
            mbi.cbSize     = sizeof(SHMENUBARINFO);
            mbi.hwndParent = hWnd;
            mbi.nToolBarId = IDR_MENU;
            mbi.hInstRes   = g_hInst;

            if (!SHCreateMenuBar(&mbi)) 
            {
                g_hWndMenuBar = NULL;
            }
            else
            {
                g_hWndMenuBar = mbi.hwndMB;
            }
			hWndListView = CreateListView( hWnd );
			if (hWndListView == NULL)
			MessageBox (NULL, TEXT("Listview not created!"), NULL, MB_OK );
            // 初始化外壳程序激活信息结构
            memset(&s_sai, 0, sizeof (s_sai));
            s_sai.cbSize = sizeof (s_sai);
            break;
        case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            
            // TODO: 在此添加任意绘图代码...
            
            EndPaint(hWnd, &ps);
            break;
		case WM_NOTIFY:
		{
			
			 NMHDR* pnmh = (NMHDR*) lParam;
			 switch(pnmh->code)
			{
				 case NM_CLICK:
				 {
						NMLISTVIEW* pnmlv = (NMLISTVIEW*)lParam;		
						 switch(pnmlv->iItem)
							{
								case 0:
									 DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_CLUB, hWnd, hClub);
								 break;
							 	case 1:
									{
											TCHAR szOutName[30];
											TCHAR szOutTelephone[30];
											ReadTelephoneForRegister(L"HotLine",szOutName,szOutTelephone); 
											if (lstrlen(szOutTelephone) < 2)
											 {
												DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_HOTLINE, hWnd, HotLine);
											  }
											else
											{
												tapiRequestMakeCall (szOutTelephone,NULL,L"客户服务热线",NULL);
											}
									}
								 break;
							 	case 2:
									 {
											TCHAR szOutName[30];
											TCHAR szOutTelephone[30];
											ReadTelephoneForRegister(L"ManagerTelephone",szOutName,szOutTelephone); 
											if (lstrlen(szOutTelephone) < 2)
											 {
												DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_MANAGERTELEPHONE, hWnd, hManagerTelephone);
											  }
											else
											{
												tapiRequestMakeCall (szOutTelephone,NULL,szOutName,NULL);
											}
									}
								 break;
							 	case 3:
									 if (g_hwndBasicDialog == 0)
									 {
										 ShowWindow( hWndListView,SW_HIDE);
									      g_hwndBasicDialog = CreateDialog(g_hInst, (LPCTSTR)IDD_POCKETPC_MOBILESECRETARY, hWnd, hMobileSecretary);
									 }
								 break;
								 case 4:
									 if (g_hwndBasicDialog == 0)
									 {
										 ShowWindow( hWndListView,SW_HIDE);
										 g_hwndBasicDialog = CreateDialog(g_hInst, (LPCTSTR)IDD_POCKETPC_MYDREAMWEB, hWnd, hWyDearmWeb);
									 }
								 break;
							 }
				 }	
				 break;
				 case LVN_ITEMACTIVATE:
				{
						NMLISTVIEW* pnmlv = (NMLISTVIEW*)lParam;
						switch(pnmlv->iItem)
							{
								case 0:
									 DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_CLUB, hWnd, hClub);
								 break;
							 	case 1:
									{
											TCHAR szOutName[30];
											TCHAR szOutTelephone[30];
											ReadTelephoneForRegister(L"HotLine",szOutName,szOutTelephone); 
											if (lstrlen(szOutTelephone) < 2)
											 {
												DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_HOTLINE, hWnd, HotLine);
											  }
											else
											{
												tapiRequestMakeCall (szOutTelephone,NULL,L"客户服务热线",NULL);
											}
									}
								 break;
							 	case 2:
									 {
											TCHAR szOutName[30];
											TCHAR szOutTelephone[30];
											ReadTelephoneForRegister(L"ManagerTelephone",szOutName,szOutTelephone); 
											if (lstrlen(szOutTelephone) < 2)
											 {
												DialogBox(g_hInst, (LPCTSTR)IDD_POCKETPC_MANAGERTELEPHONE, hWnd, hManagerTelephone);
											  }
											else
											{
												tapiRequestMakeCall (szOutTelephone,NULL,szOutName,NULL);
											}
									}
								 break;
							 case 3:
									 if (g_hwndBasicDialog == 0)
									 {
										 ShowWindow( hWndListView,SW_HIDE);
									      g_hwndBasicDialog = CreateDialog(g_hInst, (LPCTSTR)IDD_POCKETPC_MOBILESECRETARY, hWnd, hMobileSecretary);
									 }
								 break;
								 case 4:
									 if (g_hwndBasicDialog == 0)
									 {
										 ShowWindow( hWndListView,SW_HIDE);
										 g_hwndBasicDialog = CreateDialog(g_hInst, (LPCTSTR)IDD_POCKETPC_MYDREAMWEB, hWnd, hWyDearmWeb);
									 }
							 }

            }
            break;
			

⌨️ 快捷键说明

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