2009-08-10 14 views
0

Gibt es eine Voraussetzung für den Aufruf von GetDeviceCaps? Ich versuche herauszufinden (zur Laufzeit), ob die native Bildschirmauflösung für ein Windows Mobile-Gerät QGVA oder VGA ist. Folgende Rückgabewerte sind alle Null in OnInitDialog():Windows Mobile GetDeviceCaps gibt immer Null zurück

CDC* dc = GetDC(); 
int horzRes = GetDeviceCaps(HDC(dc), HORZRES); 
int vertRes = GetDeviceCaps(HDC(dc), VERTRES); 
int xLogPixels = GetDeviceCaps(HDC(dc), LOGPIXELSX); 
int yLogPixels = GetDeviceCaps(HDC(dc), LOGPIXELSY); 

Antwort

1

Try this:

int HORZRES = GetSystemMetrics (SM_CXSCREEN);

int vertRes = GetSystemMetrics (SM_CYSCREEN);

1

Es definitiv Vorbedingungen ...

http://msdn.microsoft.com/en-us/library/ms838191.aspx sagt:

  1. im Menü Einfügen die Option Ressourcen.
  2. Klicken Sie auf die Schaltfläche Benutzerdefiniert.
  3. Geben Sie CEUX für den Ressourcentyp ein.
  4. Legen Sie die Ressourcendaten auf 01 00 fest.
  5. Klicken Sie auf die Registerkarte Eigenschaften.
  6. Benennen Sie das Element in "HI_RES_AWARE" um, einschließlich Anführungszeichen. (Wenn die Anführungszeichen weggelassen werden, wird HI_RES_AWARE fälschlicherweise als numerischer Wert in resource.h definiert, und Sie müssen zurückgehen und die Zeile von resource.h löschen.)
  7. Deaktivieren Sie das Kontrollkästchen für die externe Datei. (was auch immer das bedeutet)

, um die Entwicklung von Anwendungen mit hoher Auflösung zu ermöglichen.

ich nicht in der Lage war, die Ceux Ressource, die Art und Weise zu schaffen, aber ich war erfolgreich, nachdem ich es auf die Ressource-Datei direkt nur hinzugefügt, zB:

HI_RES_AWARE CEUX {1}  // To turn off the emulation layer 

Der Anwendungscode muss auch eine einführende haben :

AfxEnableDRA(true); 

Auch danach, alle der GetDeviceCaps Werte lagen über noch Null, aber

int widthX = GetSystemMetrics(SM_CXFULLSCREEN); 
int heightY = GetSystemMetrics(SM_CYFULLSCREEN); 
int captionHeight = GetSystemMetrics(SM_CYCAPTION); 
int menuHeight = GetSystemMetrics(SM_CYMENU); 
int dialogFrameWidth = GetSystemMetrics(SM_CXDLGFRAME); 
int dialogFrameHeight = GetSystemMetrics(SM_CYDLGFRAME); 

Alle zurückgegebenen (hi-res) Werte auf VGA-Auflösung PPC03se und WM5-Geräten und Emulatoren.

Verwandte Themen