HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: Поворот экрана

[Ответить]
KUKpda [11.03.2005 19:11] Поворот экрана:
Доброго времени суток, форум!

Подскажите плз как "повернуть" экран для PDA с помощью eVT 3.0 (MFC или Win32 функции).

Буду благодарен за link с примером.
KAjFASH [11.03.2005 23:04] :
Для не 2003 SDK (eVC3)://Requirements:
//OS Versions: Windows CE .NET 4.0 and later.
//Header: Windows.h.
//#define DM_DISPLAYORIENTATION 0x00800000L
//#define CDS_TEST 0x00000002
//#define DMDO_0 0 // 0 degree
//#define DMDO_90 1 // 90 degree
//#define DMDO_180 2 // 180 degree
//#define DMDO_270 4 // 270 degree
//LONG ChangeDisplaySettingsEx(LPCTSTR lpszDeviceName, LPDEVMODE lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam);
typedef struct _devicemodeW_420 {
WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
WCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
DWORD dmDisplayFrequency;
DWORD dmDisplayOrientation;
// #if (WINVER >= 0x0400)
// DWORD dmICMMethod;
// DWORD dmICMIntent;
// DWORD dmMediaType;
// DWORD dmDitherType;
// DWORD dmReserved1;
// DWORD dmReserved2;
// #endif /* WINVER */
} DEVMODEW_420;

// Rotate screen in portrait mode
HINSTANCE m_hDll = LoadLibrary(TEXT("COREDLL.dll"));
if (m_hDll) {
//function declarations.
typedef LONG (*LPChangeDisplaySettingsEx) (LPCTSTR lpszDeviceName, _devicemodeW_420* lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam);
LPChangeDisplaySettingsEx _ChangeDisplaySettingsEx;
// actual function mapping
_ChangeDisplaySettingsEx = (LPChangeDisplaySettingsEx)GetProcAddress(m_hDll, TEXT("ChangeDisplaySettingsEx"));
if(_ChangeDisplaySettingsEx){
// Get Device display orientation
DEVMODEW_420 devmode = {0};
devmode.dmSize = sizeof(DEVMODE);
devmode.dmFields = 0x00800000L;//DM_DISPLAYORIENTATION;
_ChangeDisplaySettingsEx(NULL, &devmode, 0, 0x00000002 /*CDS_TEST*/, NULL);
if (devmode.dmDisplayOrientation != 0) {
// Set display orientation
devmode.dmDisplayOrientation = 0/*DMDO_0*/; //portrait mode
devmode.dmFields = 0x00800000L;//DM_DISPLAYORIENTATION;
_ChangeDisplaySettingsEx(NULL, &devmode, NULL, 0, NULL);
}
}
}
[Ответить]