全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2075
推到 Plurk!
推到 Facebook!

讓RichEdit的Print()可以像PrintDialog可以選擇印表機

答題得分者是:ys168
astro0803
一般會員


發表:18
回覆:30
積分:9
註冊:2007-05-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-09 18:42:57 IP:61.223.xxx.xxx 訂閱
原本的問題經由幾天的尋找有了初步的解法,但是目前我卡在怎麼樣才能讓RichEdit的Print()可以
去選擇印表機呢?
編輯記錄
astro0803 重新編輯於 2007-08-09 19:09:50, 註解 無‧
astro0803 重新編輯於 2007-08-09 19:11:21, 註解 無‧
astro0803 重新編輯於 2007-08-12 11:18:33, 註解 無‧
astro0803
一般會員


發表:18
回覆:30
積分:9
註冊:2007-05-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-09 20:10:39 IP:61.223.xxx.xxx 訂閱
這幾天有找到關於RichEdit它所提供的print方法,也有去嘗了一下,發現可以列印出來,但是卻有一個問題,就是怎麼樣才能像printdialog元件讓使用者去選擇print的類型,而不是只能用預設值。
編輯記錄
astro0803 重新編輯於 2007-08-12 11:03:13, 註解 無‧
astro0803 重新編輯於 2007-08-12 11:15:14, 註解 無‧
astro0803 重新編輯於 2007-08-12 11:15:32, 註解 無‧
ys168
初階會員


發表:3
回覆:24
積分:25
註冊:2005-10-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-29 18:05:43 IP:218.161.xxx.xxx 訂閱

[code cpp]
此篇程式看是否對您有幫助?

『運用Hook行程,呼叫與設定設定列印格式>對話盒結構宣告
PAGESETUPDLG psd;
::ZeroMemory(&psd, sizeof(PAGESETUPDLG));
//設定結構成員
psd.lStructSize = sizeof(PAGESETUPDLG);
psd.hwndOwner = Handle;
//將列印格式>對話盒
if(::PageSetupDlg(&psd))
{
HANDLE HMem;
char device[MAX_PATH], driver[MAX_PATH], port[MAX_PATH];
//user可直接列印進行部分之程式碼....
//Printer()->BeginDoc();
//Printer()->Canvas->Rectangle(20,20,1000,1000);
//Printer()->EndDoc();
//釋放全域性記憶體
::GlobalFree(HMem);
::GlobalFree(psd.hDevNames);
}
}
//---------------------------------------------------------------------------
//當創造一新<設定列印格式>對話盒時,即捕捉對話盒初始化訊息
UINT APIENTRY PageSetupHook(HWND HDlg, UINT uiMsg, WPARAM WParam,
LPARAM LParam)
{
if(uiMsg == WM_INITDIALOG)
{
RECT FormRect, DialogRect;
//取得訊息轉換成對話盒結構
LPPAGESETUPDLG lppsd = (LPPAGESETUPDLG)LParam;
//取得Form1與對話盒的範圍
::GetWindowRect(lppsd->hwndOwner, &FormRect);
::GetWindowRect(HDlg, &DialogRect);
//計算Form1與對話盒的長寬
int cxForm = FormRect.right - FormRect.left;
int cyForm = FormRect.bottom - FormRect.top;
int cxDialog = DialogRect.right - DialogRect.left;
int cyDialog = DialogRect.bottom - DialogRect.top;
//將對話盒的移動至Form1居中出現
::MoveWindow(HDlg,
(cxForm - cxDialog) / 2 FormRect.left,
(cyForm - cyDialog) / 2 FormRect.top,
cxDialog, cyDialog,
true);
}
return 0;
}
//---------------------------------------------------------------------------
[/code]
------
yangshuh
系統時間:2024-05-03 20:59:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!