2010-07-18 24 views
1

This page vous dit besoin d'appeler PrintSetupDlg, mais ce codeComment afficher les boîtes de dialogue (imprimante) dans l'application Windows CE Direct-X?

PAGESETUPDLG printDialog; 
ZeroMemory(&printDialog, sizeof(printDialog)); 
printDialog.lStructSize = sizeof(printDialog); 
printDialog.hwndOwner = hwnd; //or = NULL 

PageSetupDlg(&printDialog); 

gèle le programme sur l'appel à PageSetupDlg - il ne répond plus, et je dois arrêter le processus.

Comment imprimer sous Windows CE? (en utilisant C++ dans une application DirectX, CE 6.0)

Répondre

1

Il s'avère que, pour une raison folle, les boîtes de dialogue ne sont dessinées que sur le tampon avant d'origine, même si ce tampon a été échangé et que le tampon arrière original est maintenant le buffer avant (affiché sur l'écran). La solution consistait à garder une trace du nombre de fois que le tampon a été échangé, et à l'échanger à nouveau si le nombre de swaps était impair (ce qui fait que le tampon avant original est toujours le tampon avant lorsque le dialogue est activé). montré).