如何让WINDOWS MOBILE的项目支持更多设备。
前一个项目要SUPPORT的机型很多,PPC,SP,而且要求主流的机型全覆盖,总结一下在做这方面开发的时候需要用的API,如果大家也遇到这种情况少走些弯路:)
GetSystemMetrics( SM_CXSCREEN ); //得到X横的宽度,如果想得到Y轴宽度为M_CYSCREEN )这个对于要SUPPORT不同大小的屏幕的PROJECT很有用。
int GetDeviceCaps( HDC hdc, // handle to DC int nIndex // index of capability );// nindex 参数可设置的值很多 当设为LOGPIXELSY得到分辨率,
注意相同的字体在不同分辨率的设备上的大小是不同的!所以如果有调用DAWTEXT的方法的时候一定要先把设备的分辨率得一下!
GetSpecialPath(int index);//得到系统文件夹如PROGRAM FILES或者WINDOWS等文件夹的绝对路径。
注意在不同语言版本的WINDOWS MOBILE其系统文件夹的路径不一定都是WINDOWS,STARTMENU。如果用到这个最好是动态获得。
BOOL SystemParametersInfo( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni );//设置或者得到系统当前设置
比如得到系统的运行平台(PPC OR SP)这样用
BOOL IsPocketPC()
{
TCHAR tszPlatform[64];
if (TRUE == SystemParametersInfo(SPI_GETPLATFORMTYPE,
sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0))
{
if (0 == _tcsicmp(TEXT("PocketPC"), tszPlatform))
{
return TRUE;
}
}
return FALSE;
}
WINAPI DWORD GetModuleFileName( HMODULE hModule, LPWSTR lpFilename, DWORD nSize );//当HMODULE设为NULL时,得到当前程序路径,
不要假定自己的程序总是运行在你指定的目录下,用户有可能将其安装在MEMORY CARD上。如果不知道如何使用户能把程序安装在存储卡,可以参见我的第一篇博客!
GetSystemMetrics( SM_CXSCREEN ); //得到X横的宽度,如果想得到Y轴宽度为M_CYSCREEN )这个对于要SUPPORT不同大小的屏幕的PROJECT很有用。
int GetDeviceCaps( HDC hdc, // handle to DC int nIndex // index of capability );// nindex 参数可设置的值很多 当设为LOGPIXELSY得到分辨率,
注意相同的字体在不同分辨率的设备上的大小是不同的!所以如果有调用DAWTEXT的方法的时候一定要先把设备的分辨率得一下!
GetSpecialPath(int index);//得到系统文件夹如PROGRAM FILES或者WINDOWS等文件夹的绝对路径。
注意在不同语言版本的WINDOWS MOBILE其系统文件夹的路径不一定都是WINDOWS,STARTMENU。如果用到这个最好是动态获得。
BOOL SystemParametersInfo( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni );//设置或者得到系统当前设置
比如得到系统的运行平台(PPC OR SP)这样用
BOOL IsPocketPC()
{
TCHAR tszPlatform[64];
if (TRUE == SystemParametersInfo(SPI_GETPLATFORMTYPE,
sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0))
{
if (0 == _tcsicmp(TEXT("PocketPC"), tszPlatform))
{
return TRUE;
}
}
return FALSE;
}
WINAPI DWORD GetModuleFileName( HMODULE hModule, LPWSTR lpFilename, DWORD nSize );//当HMODULE设为NULL时,得到当前程序路径,
不要假定自己的程序总是运行在你指定的目录下,用户有可能将其安装在MEMORY CARD上。如果不知道如何使用户能把程序安装在存储卡,可以参见我的第一篇博客!