国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
銳英源軟件,圖文混排FormView打印預覽項目介紹

圖文混排FormView

打印預覽項目技術(shù)文檔

1.簡介

VC6里,CFormView的外觀和對話框CDialog差不多,上面可以直接放置各類子控件窗口,交互形式是以窗口模式進行。這和其它視圖風格完全不一樣??蛻繇椖渴且活愥t(yī)院的項目,想把CFormView子窗口里的圖片和文字內(nèi)容進行合理的預覽和打印。

所見即所得預覽和打印是窗體應(yīng)用程序開發(fā)里經(jīng)常用到的功能,也是一個不太容易掌握的功能,我們靈活使用了codeproject上提供的EasyReport開源項目,進行功能擴展,下面是實現(xiàn)特點:

u       實現(xiàn)了圖文混排的預覽和打印。

u       實現(xiàn)了根據(jù)打印紙寬度自適應(yīng)的預覽和打印。

u       預覽框架和原有的CFormView不沖突。

u       系統(tǒng)地解決了CDC映射模式問題。

u       預覽窗口功能完整。

下面是CFormView的顯示截圖:


下面是預覽的截圖:

 

2.代碼移植說明

1.       找到3bmp格式圖片放到當前工程目錄下,其圖片名分別為bitmap1.bmp, bitmap2.bmp,bitmap3.bmp.

2.       移植過程:把CSampleReportView類,CMyFrame類,CEasyReport類添加到你想要的工程里,注意包含頭文件?!垂こ蹋?/span>>添加到工程->文件->選擇類的頭文件和源文件,點添加即可?!?/span>

3.       假如你的工程名是Test,在應(yīng)用程序類(就是CTestApp類的源文件里)的CSampleReportApp theApp;下面加入這2CSingleDocTemplate* m_pTemplate;

        BOOL m_bPrintPreview;

CTestApp類的頭文件里加入

extern CSingleDocTemplate* m_pTemplate;

extern BOOL m_bPrintPreview;在你的打印預覽按鈕的響應(yīng)函數(shù)所在類的頭文件里加入函數(shù)BOOL OnPreviewCreate();源文件中加入

BOOL CMainFrame::OnPreviewCreate()

{

              CFrameWnd* pOldFrame=(CFrameWnd*)AfxGetThread()->m_pMainWnd;

      

       if (!m_pTemplate)

       {

              m_pTemplate = new CSingleDocTemplate(

                            IDR_MENU1,

                     NULL,

                     RUNTIME_CLASS(CFrameWnd),

                     RUNTIME_CLASS(CSampleReportView));

              AfxGetApp()->AddDocTemplate(m_pTemplate);

       }

      

       CFrameWnd * pFrameWnd =(CFrameWnd*) m_pTemplate->CreateNewFrame( NULL, NULL );

       m_bPrintPreview=TRUE;

      

       m_pTemplate->InitialUpdateFrame( pFrameWnd, NULL);

      

       CSampleReportView* pView=(CSampleReportView*)pFrameWnd->GetActiveView();

       //pView->m_pCtrl=this;byLB

       pView->m_pOldFrame=pOldFrame;

      

       AfxGetApp()->m_pMainWnd=pFrameWnd;

       pFrameWnd->SetWindowText(_T("OilManager Print Preview"));

       pFrameWnd->ShowWindow(SW_SHOWMAXIMIZED);

       pView->OnFilePrintPreview();

return TRUE;

}

    在打印預覽的響應(yīng)函數(shù)里加入:OnPreviewCreate()即可。

   

4.       實現(xiàn)機制:子框架里用單文檔模板創(chuàng)建視圖的方法實現(xiàn)了基本打印框架。

5.       打印預覽內(nèi)容的實現(xiàn)主要靠CEasyReport這個類提供的方法來實現(xiàn)的。

6.       CSampleReportView類的InitEasyReport函數(shù)里加預覽內(nèi)容定制

7.       首先CSampleReportView類里添加一個CEasyReport的對象名為m_Report.通過個對象調(diào)用CEasyReport類提供的外部方法

8.       CEasyReport里的函數(shù)簡介

(1)SetCompanyName(const char *inStr)設(shè)置預覽時標題的名字,

使用方法:傳入一個字符串即可。

例如:m_Report.SetCompanyNamexyz;就把預覽時的標題名字設(shè)置成xyz

(2)Start()函數(shù)指示了預覽開始,在這個函數(shù)里做一些初始化工作,m_Report.Start()|這樣就調(diào)用了。

      (3) void    SetDataCols(CColInfo *inCols = NULL, int nCols=0,bool bHideColName=false);  設(shè)置列的數(shù)目和寬度,第一個參數(shù)是一個結(jié)構(gòu)體的指針,此結(jié)構(gòu)體的初始化形式如下:

static CEasyReport::CColInfo                     s_ColsA[] = {

          {"edit1",   27,          CEasyReport::CColInfo::eLeft},

          {"Edit1",  27,          CEasyReport::CColInfo::eLeft},

          {"edit2",   27,          CEasyReport::CColInfo::eLeft},

          {"Edit2",  27,     CEasyReport::CColInfo::eLeft} 

};

"edit1"這個代表的是列名,27代表的是列的寬度,CEasyReport::CColInfo::eLeft指的是左對齊。SetDataCols的第2個參數(shù)指的是結(jié)構(gòu)體里項的數(shù)目。第3個參數(shù)是指   是否隱藏列名。當為TURE時隱藏列名,FALSE不隱藏列名。

使用示例:m_Report.SetDataCols(s_ColsA,4,TRUE);

4void   AtTab(int,const char *,bool bHIdeBox=false,int iCustomHeight=0);

功能:設(shè)置某列的文本內(nèi)容

參數(shù)簡介:

1個參數(shù)指的是要加入的列的索引(指的是CColInfo結(jié)構(gòu)體里的項的索引值。)

2個參數(shù)指的是要加入此列下的內(nèi)容字符串。

3個參數(shù)指是否顯示文本外的矩形框,TRUE時不顯示,FALSE顯示。

4個參數(shù)指此項的高度

int   AtTab(int,CStringArray&);  

功能:為預覽添加子列

參數(shù)簡介:

1個參數(shù)指的是要加入的列的索引(指的是CColInfo結(jié)構(gòu)體里的項的索引值。)

2個參數(shù)指的是子列的內(nèi)容

 

 

 

void    AtTab(int,CString strPath,CWnd *pRc);

功能:為打印預覽添加圖片

參數(shù)簡介:

1個參數(shù)是指的是要加入的列的索引(指的是CColInfo結(jié)構(gòu)體里的項的索引值。)

2個參數(shù)是指圖片的路徑。

3個參數(shù)是一個為了實現(xiàn)重載區(qū)分的指針(備用指針可為以后要獲得某些控件的指針做準備)

9.       void NextRow(int iAdjustHeight=0,BOOL Showline=FALSE);  

功能:移到下一行

參數(shù)簡介:

1個參數(shù)指的是移動的高度

2個參數(shù)指是否顯示橫線,TRUE顯示橫線,FALSE不顯示橫線。

8void GetGroupTopLeft(int index);

    功能:獲得某一時刻矩形左上角的坐標

參數(shù)簡介:

    CEasyReport類里的數(shù)據(jù)成員m_gRect矩形數(shù)組的中某一元素的索引

void GetGroupRightBottom(int index,BOOL bAdd=TRUE);

    功能:獲得某一時刻矩形右下角的坐標

參數(shù)簡介:

    1個參數(shù)指CEasyReport類里的數(shù)據(jù)成員m_gRect矩形數(shù)組的中某一元素的索引

    2個參數(shù)指 是否獲得右下角坐標 如果為FALSE 則不獲得,反之,則獲得。

    int GetLastObjectRect(CRect & rectGet);

    功能:獲得最后對象一個矩形的值

參數(shù)簡介:要獲得的矩形的值

9. void        End();

    功能:預覽結(jié)束

    使用示例:m_Report.End();

10.     void GotoPage(int inPage);

功能:預覽界面跳轉(zhuǎn)

參數(shù)簡介:

要跳轉(zhuǎn)到的頁面的索引,為0時,跳轉(zhuǎn)到第1個頁面。

使用示例:m_Report.GotoPage(0);

(注意:當m_Report.SetCompanyNamexyz);調(diào)用后再調(diào)用m_Report.Start();

表示打印預覽定制開始,m_Report.End();表示打印預覽定制結(jié)束,在這2個函數(shù)(startEnd函數(shù))之間調(diào)用AtTab,NextRow等這些函數(shù),在m_Report.End();語句后加m_Report.GotoPage(0);就可以了)

3.前景

此打印預覽構(gòu)架靈活,擴展能力強,歡迎相關(guān)單位進行報表相關(guān)外包項目合作。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Lambda拉姆達表達式
Python中bool()函數(shù)有什么作用?
怎樣用函數(shù)去規(guī)范中英文混排的文字格式
【阿里云課程】詳解深度學習優(yōu)化:參數(shù)初始化,激活函數(shù),標準化,池化
MFC淺析(1) 文檔視圖結(jié)構(gòu)中,缺省的命令處理
C#中DllImport用法和路徑問題
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服