線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1164
推到 Plurk!
推到 Facebook!

請問如何將 TreeView 視窗之全部內容列印出?

尚未結案
nivek
一般會員


發表:9
回覆:15
積分:4
註冊:2004-04-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-13 14:03:11 IP:203.70.xxx.xxx 未訂閱
是否可將 TreeView 轉換為其物件,或是轉換為圖檔.謝謝~
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-14 23:06:02 IP:163.29.xxx.xxx 未訂閱
引言: 是否可將 TreeView 轉換為其物件,或是轉換為圖檔.謝謝~
nivek您好: 請參考以下的程式碼
 
   Graphics::TBitmap *bmp = new Graphics::TBitmap;
   //取得TreeView1(DC)handle
   HDC hDC = GetDC(TreeView1->Handle);
   //設定圖檔的寬/高(來源為TreeView1)
   bmp->Width = TreeView1->Width;
   bmp->Height = TreeView1->Height;
   //複製TreeView1畫面至點陣圖元件上
   BitBlt(bmp->Canvas->Handle,0,0,bmp->Width,bmp->Height,hDC,0,0,SRCCOPY);
   //將點陣圖元件指派給TImage元件
   Image1->Picture->Bitmap = bmp;
   //完成抓取TreeView1畫面後,釋放(DC)handle
   ReleaseDC(bmp->Canvas->Handle,hDC);
   //釋放點陣圖元件
   delete bmp;    
希望對你有幫助
nivek
一般會員


發表:9
回覆:15
積分:4
註冊:2004-04-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-19 17:40:41 IP:203.70.xxx.xxx 未訂閱
引言:
引言: 是否可將 TreeView 轉換為其物件,或是轉換為圖檔.謝謝~
nivek您好: 請參考以下的程式碼
 
   Graphics::TBitmap *bmp = new Graphics::TBitmap;
   //取得TreeView1(DC)handle
   HDC hDC = GetDC(TreeView1->Handle);
   //設定圖檔的寬/高(來源為TreeView1)
   bmp->Width = TreeView1->Width;
   bmp->Height = TreeView1->Height;
   //複製TreeView1畫面至點陣圖元件上
   BitBlt(bmp->Canvas->Handle,0,0,bmp->Width,bmp->Height,hDC,0,0,SRCCOPY);
   //將點陣圖元件指派給TImage元件
   Image1->Picture->Bitmap = bmp;
   //完成抓取TreeView1畫面後,釋放(DC)handle
   ReleaseDC(bmp->Canvas->Handle,hDC);
   //釋放點陣圖元件
   delete bmp;    
希望對你有幫助 < face="Verdana, Arial, Helvetica"> 謝謝你~
nivek
一般會員


發表:9
回覆:15
積分:4
註冊:2004-04-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-20 08:28:18 IP:203.70.xxx.xxx 未訂閱
是否可將 TreeView 轉換為其物件,或是轉換為圖檔.謝謝~ 謝謝 g6101回覆! 但目前的問題是!視窗大小有限,所以容量較多的,則無法全印! 想說是否能像列印報表之方式,整張列出內容!即時在螢幕上無 顯示之容量,都可列出來~ 謝謝您
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-21 18:59:04 IP:61.226.xxx.xxx 未訂閱
引言: 是否可將 TreeView 轉換為其物件,或是轉換為圖檔.謝謝~ 謝謝 g6101回覆! 但目前的問題是!視窗大小有限,所以容量較多的,則無法全印! 想說是否能像列印報表之方式,整張列出內容!即時在螢幕上無 顯示之容量,都可列出來~ 謝謝您
請參以下(TTreeView)各種資訊取得方法.
//取得Item的(Pixels)高度
TRect rt = TreeView1->TopItem->DisplayRect(false);
rt.Height(); <-合算TreeView的總高的計算方法如下(含不可見的範圍)
計算圖檔的總高 = rt.Height() * (scroll.nMax   1); //(等同列印的總高度)
//取得TreeView可見範的寬度(不含ScrollBar)
TreeView1->ClientWidth;
//取得TreeView可見範的寬度(含ScrollBar)
TreeView1->Width;
//取得ScrollBar的相關資訊的方法
SCROLLINFO scroll;  //宣告(ScrollBar)結構
memset(&scroll,0,sizeof(SCROLLINFO));//結構初始化
scroll.fMask = SIF_ALL; //取得ScrollBar全部資料的旗標
scroll.cbSize = sizeof(SCROLLINFO); //配置足夠記憶體
GetScrollInfo(TreeView1->Handle,SB_VERT,&scroll);//取得垂直ScrollBar的資訊
//返回值如果是真的將得到以下各種資訊,否則代表ScrollBar沒有出現
scroll.nMax;//總行數
scroll.nPage;//一頁幾行
scroll.nPos;//捲軸的位置
//令垂直ScrollBar向下翻頁
SendMessage(TreeView1->Handle,WM_VSCROLL,SB_PAGEDOWN,0);
//請注意!第一頁的最後一行等於第二頁的第一行.
//其它控制ScrollBar的方法見(WM_VSCROLL)說明.
◎天長地久有時盡,追求知識無絕期!
nivek
一般會員


發表:9
回覆:15
積分:4
註冊:2004-04-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-30 08:34:49 IP:203.70.xxx.xxx 未訂閱
感謝各位大大~ 問題是解決了~但TreeView 的虛線無法列印出來內! 是否能解決此問題? 再次請教~
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-01 23:47:55 IP:163.29.xxx.xxx 未訂閱
如圖所示,左邊(TTreeView)元件/右為點陣圖,既然都能轉成(虛線也在裡頭)圖檔,那有印不出來的狀況!如果不是的話,請把程式碼貼上來先,讓大伙兒幫你把把脈! ◎天長地久有時盡,追求知識無絕期!
nivek
一般會員


發表:9
回覆:15
積分:4
註冊:2004-04-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-11 08:46:55 IP:203.70.xxx.xxx 未訂閱
感謝各位大大~ 已判斷式,配合內碼字.秀出線條!
系統時間:2024-11-25 9:42:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!