在vc中如何实现打印
现在我在一个对话框窗口中放入显示表的控件,且已连接好数据库,可以显示。
我在这个对话框中加入了一个按钮,想用于打印。不只如何实现那,请大侠帮助。一点击打印按钮就可以打印表的数据,且有表格。

解决方案 »

  1.   

    #include <windows.h>HDC GetPrinterDC (void){
         DWORD            dwNeeded, dwReturned ;
         HDC              hdc ;
         PRINTER_INFO_4 * pinfo4 ;
         PRINTER_INFO_5 * pinfo5 ;      if (GetVersion () & 0x80000000)         // Windows 98
         {
              EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, NULL,
                            0, &dwNeeded, &dwReturned) ;          pinfo5 = malloc (dwNeeded) ;          EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5,
                            dwNeeded, &dwNeeded, &dwReturned) ;          hdc = CreateDC (NULL, pinfo5->pPrinterName, NULL, NULL) ;          free (pinfo5) ;
         }
         else                                    // Windows NT
         {
              EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 4, NULL,
                            0, &dwNeeded, &dwReturned) ;          pinfo4 = malloc (dwNeeded) ;          EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE) pinfo4,
                            dwNeeded, &dwNeeded, &dwReturned) ;          hdc = CreateDC (NULL, pinfo4->pPrinterName, NULL, NULL) ;          free (pinfo4) ;
         }
         return hdc ;   
    }int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        LPSTR lpszCmdLine, int iCmdShow)
    {
         static DOCINFO di = { sizeof (DOCINFO), TEXT ("FormFeed") } ;
         HDC            hdcPrint = GetPrinterDC () ;
         
         if (hdcPrint != NULL)
         {
              if (StartDoc (hdcPrint, &di) > 0)
                   if (StartPage (hdcPrint) > 0 && EndPage (hdcPrint) > 0) {
                        if (EndPage (hdcPrn) > 0)
                        EndDoc (hdcPrn) ;
                   else
                        bSuccess = FALSE ;
              }
                        EndDoc (hdcPrint) ;
         
                   
              DeleteDC (hdcPrint) ;
         }
         return 0 ;
    }
      

  2.   

    我加入的控件是msflexgrid 这个控件有自已的print()函数但是我不会用啊参数是这样的print(CDC * pDC,DWORD dwFlags)