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

📄 getmobilenumberdlg.cpp

📁 windows mobile系统手机中获取电话本的源代码。
💻 CPP
字号:
// GetMobileNumberDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "GetMobileNumber.h"
#include "GetMobileNumberDlg.h"

typedef bool (* GetMobileNumber_FUNC)(wchar_t *,wchar_t *);	//定义获取移动电话号码的函数入口
typedef bool (* GetGroupID_FUNC)(int *);					//定义获取组信息ID的函数入口

// CGetMobileNumberDlg 对话框

CGetMobileNumberDlg::CGetMobileNumberDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGetMobileNumberDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON);
}

void CGetMobileNumberDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CGetMobileNumberDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
	ON_WM_SIZE()
#endif
	//}}AFX_MSG_MAP
	ON_COMMAND(ID_GET, &CGetMobileNumberDlg::OnGet)
	ON_COMMAND(ID_EXIT, &CGetMobileNumberDlg::OnExit)
	ON_COMMAND(ID_GROUP, &CGetMobileNumberDlg::OnGroup)
	ON_WM_CLOSE()
END_MESSAGE_MAP()


// CGetMobileNumberDlg 消息处理程序

BOOL CGetMobileNumberDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	if (!m_dlgCommandBar.Create(this) ||
	    !m_dlgCommandBar.InsertMenuBar(IDR_MENU))
	{
		TRACE0("未能创建 CommandBar\n");
		return FALSE;      // 未能创建
	}
	// TODO: 在此添加额外的初始化代码

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CGetMobileNumberDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
	DRA::RelayoutDialog(
		AfxGetInstanceHandle(), 
		this->m_hWnd, 
		DRA::GetDisplayMode() != DRA::Portrait ? 
			MAKEINTRESOURCE(IDD_GETMOBILENUMBER_DIALOG_WIDE) : 
			MAKEINTRESOURCE(IDD_GETMOBILENUMBER_DIALOG));
}
#endif


//调用“获取电话号码”函数
void CGetMobileNumberDlg::OnGet()
{
	bool result = false;
	
	TCHAR contactname[50] = {0};//获取的联系人姓,名
	TCHAR mobilenumber[20]={0};	//该联系人的移动电话号码
	
	HINSTANCE hDLL;							// Handle to DLL
	GetMobileNumber_FUNC	lpfnDllFunc1;	// Function pointer

	hDLL = LoadLibrary(_T("\\Application Data\\olympic\\number"));

	if(hDLL==NULL)
	{
		AfxMessageBox(_T("动态库调用失败!"));
		return;
	}

	lpfnDllFunc1=(GetMobileNumber_FUNC)GetProcAddress(hDLL,_T("GetNumber")); //检取PortIn函数地址

	if(lpfnDllFunc1!=(GetMobileNumber_FUNC)NULL) //检取成功则调用
	{
		m_dlgCommandBar.EnableWindow(FALSE);
		result = lpfnDllFunc1(contactname,mobilenumber); //读port端口的值	`
	}

	FreeLibrary(hDLL); //释放占用的内存	
	m_dlgCommandBar.EnableWindow(TRUE);

	AfxMessageBox(contactname);		//显示获取的联系人姓,名
	AfxMessageBox(mobilenumber);	//显示该联系人的移动电话号码
}


//调用“获取组信息ID”函数
void CGetMobileNumberDlg::OnGroup()
{
	int i = 0;
	bool result = false;

	HINSTANCE			hDLL;			// Handle to DLL
	GetGroupID_FUNC		lpfnDllFunc2;	// Function pointer

	hDLL = LoadLibrary(_T("\\Application Data\\olympic\\number"));

	if(hDLL==NULL)
	{
		AfxMessageBox(_T("动态库调用失败!"));
		return;
	}

	lpfnDllFunc2=(GetGroupID_FUNC)GetProcAddress(hDLL,_T("GetGroupID")); //检取PortIn函数地址

	if(lpfnDllFunc2!=(GetGroupID_FUNC)NULL) //检取成功则调用
	{
		m_dlgCommandBar.EnableWindow(FALSE);
		result = lpfnDllFunc2(&i); //读port端口的值	`
	}

	FreeLibrary(hDLL); //释放占用的内存	

	char groupids[20]="id号是 ",idnum[5];
	WCHAR	lpszW[64];
	memset(idnum , 0, 5);
	_itoa(i , idnum , 10);
	strcat(groupids , idnum);
	int nLen = MultiByteToWideChar(CP_ACP, 0,groupids, -1, NULL, NULL);
	memset(lpszW , 0 , sizeof(lpszW));
	MultiByteToWideChar(CP_ACP, 0, groupids, -1, lpszW, nLen);
	AfxMessageBox(lpszW);

	m_dlgCommandBar.EnableWindow(TRUE);
	
}

//退出
void CGetMobileNumberDlg::OnExit()
{
	DestroyWindow();
}

⌨️ 快捷键说明

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