Hello friends,
First off, please check below code. Well, I am developing printing functionality from the windows mobile device using vc++. (I am novice to the vc++ J). For printing, we are using third party DLLs. Below are important snippet required to explain the complete picture. Currently, the problem I am more concerning is printing multiple pages. For this, we have API and everything. While printing using “mpPreviewDialog” API (provided by third party in form of DLL) and when it recognize more than one pages required, it raises/passes “MP_EVENT_REQ_NEW_PAGE” message from printing library, ie mpPreviewDialog itself, to the handle hWnd of “mpPreviewDialog(hWnd,__)”. Now, to handle this message, we have put all logic portion in one class which is inherited from CWnd so that we can override “DefWindowProc” function to achieve our goal. But while I run the application and command print for multiple page, it only prints the first page perfectly and then just get hanged. Thus, it fails to handle the “MP_EVENT_REQ_NEW_PAGE” message of “DefWindowProc” function. What all I need is to handle this message and execute the case MP_EVENT_REQ_NEW_PAGE: while printing and multiple page required. Because in this case it issues the message but appropriate case never get executed. I hope you got my point. Please let me know how to solve this. Am I missing something? Thank you very much for your time in advance.
Let me put the scenario in this way:Code:class CFxPrinterWnd : public CWnd { DECLARE_DYNCREATE(CFxPrinterWnd) public: CFxPrinterWnd(); // protected constructor used by dynamic creation virtual ~CFxPrinterWnd(); public: #ifdef _DEBUG virtual void AssertValid() const; #ifndef _WIN32_WCE virtual void Dump(CDumpContext& dc) const; #endif #endif protected: DECLARE_MESSAGE_MAP() public: int PrintReport(HWND hwnd, int flg); protected: virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam); }; Int CFxPrinterWnd::PrintReport (HWND hWnd, int flg) { _______ This contains “mpPreviewDialog” API call which starts printing and issue “MP_EVENT_REQ_NEW_PAGE” message if more than one page required. } LRESULT CFxPrinterWnd::DefWindowProc(___,___,___) { Switch (message) { ___ Case MP_EVENT_REQ_NEW_PAGE: //This debug point never get focused while printing and new page required. ___This point is never get executed ___ } } Button1 Click Event { hWnd = ::FindWindow(NULL, _T(“del”)); CFxPrinterWnd wnd; Wnd.Create(_______________________); Ret = wnd.PrintReport(hWnd, 0); ___ ___ mpPreviewDialog (hWnd____); //This is the printing API where MP_EVENT_REQ_NEW_PAGE message get raised while printing if new page //required. wnd.DestroyWindow(); }
The window containing "Print" button in our application is designed by some other tool, and we triggered its click event and call vc++ functions in this way (In the first section, I have already put the code). Now our report to be printed contains more than one page. In third party provided printing library, it raise "MP_EVENT_REQ_NEW_PAGE" after printing the first page. (So, it;s like: Click on Print button > It will print the first page > If next page is pending then it will reaise this message > then from that point the next page get started for printing > so on...)This message is raised because there are page(s) pending to be printed. To handle this, we have created a class inherited from CWnd. But, now you please let me know where and how can I handle this message and start process for printing the next page? You inform me your design idea to accomodate this.
---
Kind Regards,
Sachin Patel



LinkBack URL
About LinkBacks


