Aufruf Windows Printdialog
-
Hallo,
ich habe mmich hier angemeldet um von eurem wissen zu profitieren, deswegen vo ab Danke für eure Hilfe.
Nun zum Thema:Ich arbeite zur zeit mit Querix an alten 4gl Programmen, die durch Querix in Windows mit GUI gepackt werden anstatt Eingabe über die Konsole.
Nun besteht das Bedürfniss für das bisherige Drucken in Dateien vorher die Windows Printdialog aufzurufen. Ich ahbe geforscht und die einzige Möglichkeit scheint die von Qurix c Unterstützung zu benutzen da Querix für das Kompelieren einen 2008 C++ Compiler benutzt.Der Code den ich mit Hilfe des Internet vorläufig zusammengebastelt habe lautet:
#include "stdafx.h" #include "afxdlgs.h" #define _AFXDLL int druck(int argc, _TCHAR* argv[]) { // Display the Windows Print dialog box with "All" radio button // initially selected. All other radio buttons are disabled. CPrintDialog dlg(FALSE); if (dlg.DoModal() == IDOK) { // Create a printer device context (DC) based on the information // selected from the Print dialog. HDC hdc = dlg.CreatePrinterDC(); ASSERT(hdc); } return 0; }Aber leider musste ich feststellen das Querix nur c und kein cpp nimmt.
Nun meine Frage an euch ist es möglich das gleiche nur mit c(habe nichts gefunden) möglich oder ein anderer Weg dorthin gibt.Ich selber habe leider weder c noch cpp Kenntnisse deswegen frage ich hier nach, ich hoffe ihr habt anregung wie ich dieses Problem bewältigen kann.
Grüße
Crashvogel.PS: Ich schreibe das nun zum 2ten mal weil der reiter davor irgendwie abhanden gekommen ist. Imf orum wurde kein Post angelegt als hoffe ich das hier bleibt der einzige.
-
Hallo,
Crashvogel schrieb:
...
Nun meine Frage an euch ist es möglich das gleiche nur mit c(habe nichts gefunden) möglich oder ein anderer Weg dorthin gibt.
...Mit der WinApi ist das machbar.
Für deinen Druckdialog ist das hier
http://msdn.microsoft.com/en-us/library/ms646940(v=VS.85).aspx
interessant, da fidest du auch eine Menge Beispiele.Das habe ich dort für dich geklaut

#include <windows.h> int main() { PRINTDLG pd = {0}; HWND hwnd = NULL; // Initialize PRINTDLG ZeroMemory(&pd, sizeof(pd)); pd.lStructSize = sizeof(pd); pd.hwndOwner = hwnd; pd.hDevMode = NULL; // Don't forget to free or store hDevMode. pd.hDevNames = NULL; // Don't forget to free or store hDevNames. pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC; pd.nCopies = 1; pd.nFromPage = 0xFFFF; pd.nToPage = 0xFFFF; pd.nMinPage = 1; pd.nMaxPage = 0xFFFF; if (PrintDlg(&pd)==TRUE) { // GDI calls to render output. DeleteDC(pd.hDC); // Delete DC when done. } return 0; }Gruß,
B.B.
-
Ich frage mich, was das ganze mit ANSI C zu ttun hat...

-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
supertux schrieb:
Ich frage mich, was das ganze mit ANSI C zu ttun hat...

das glaube ich dir sogar
-
Danke für die Antwort,
das ich es in ANSI C erstellt habe ist einfach, ich wusste es nicht besser und ich dachte dort ergäbe es einen Sinn da ich ja die Funcktion über C realisieren wollte.Danke für das beispiel das ganze wird als C Funktion einwandfrei in Querix kompiliert, leider stürzt das Programm wenn ich es ausführe ab.

Dann habe ich versucht das ganze in einer anderten Entwicklungsumgebung zu starten aber brauche ich da einen reinen C Compiler? Denn Visual Studio vin mir hat nur cpp?
Bzw. hat jemand von euch schonmal diesen Code zufällig getestet?
Crashvogel
-
BTW: Seit wann kann VS nur CPP? Wenn Du eine C Datei hinzufügst, dann wird das auch richtig übersetzt.
-
Ok es war eine korrupte Installation des VS habs ma auf nem anderen Rechner getestet. Codebeispiel läuft einwandfrei unter VS 2008.
Vielen Dank für die Hilfe
Crashvogel
-
Hi
Man sollte diesen Leuten mal erklären wie man eine reine c Datei bzw. ein reines C Project erstellet.
Es fehlt leider vielen an Grundwissen. Das finde ich doch ein wenig jämerlich. Also wer schon C/Cpp Programmiert der sollte einfach seine IDE im griff haben. !Lowbyte