どうも、クリリンです。
エクセルやワードのような、罫線のついた帳票を印刷したいのですが、どうしたらよいのでしょ
うか?
内容は、罫線付きの表内に文字列を入れて、データ行ごとに表も増やし、最終的に印刷といった
感じです。イメージとしてはエクセルの簡易印刷みたいなものなのですが・・・
印刷例として、こんな感じです。
_________________
|あああああ|いいいいい|ううううう|
|―――――|―――――|―――――|
|11111|22222|33333|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
どなたか、印刷ツールを使わないで印刷する方法を教えてください。
よろしく御願いします。
こんな感じでできるはず・・・。
かなり省略していますが、後は通常の描画とかわらないので
それと同じようにすればいいです。
void 印刷クラス::線引き関数(
CDC *pPrintDC, // デバイスコンテキスト
CRect crctLabel, // 描画用領域変数
)
{
// ペン作成 CPen
// ペン選択 pPrintDC->SelectObject
// 線描画 pPrintDC->MoveTo
// pPrintDC->LineTo
// ペン開放
return ;
}
いんちき手段ですが、「罫線文字を使う」って手もあります。
┌┐こーゆー文字です。
└┘
回答ありがとうございます。
難しい・・・
一度覚えればというか、線を引く関数さえできれば
後は簡単ですよ。
ダイアログに描画してみて、出来たものを
プリンタデバイスに置き換えてあげましょう。
がんばって下さい (^o^)
印刷するときは解像度の違いに気をつけてください。
なにもしないで画面に描画する感覚でプリンタデバイスに描画すると
普通はすごーく小さい絵になります。
ん、ダイアログに描画してからそれをプリンタデバイスに送るということではないのですか?
「ダイアログに描画してからそれをプリンタデバイスに送る」の意味がよくわかりませんが、
例えば、ダイアログ(ウィンドウ)上に表を描画する関数が下のようにあったとします。
void CDlgHoge::DrawTable( CDC* pDC )
{
CRect r(0,0,600,600);
pDC->Rectangle(&r);
}
この関数を印刷するときにも使うとすると、プリンタが600dpiの場合は1インチ(2.54センチ)
の四角形になります。プリンタが400dpiだったら1.5インチの四角形になります。
つまり、プリンタの解像度によって印刷したときの大きさが変わるということです。
実際に印刷してみるとわかりやすいと思います。
どうもです。
>ダイアログに描画してみて、出来たものをプリンタデバイスに置き換えてあげましょう。
のところで、エクセルみたいにダイアログに描画は出来たのですが、プリンタデバイスに置き換
える方法がわかりません。
pDC->Rectangle(&r);
pDC->TextOut(TextLeft, TextTop, DataStr);
↑
ここをHDCに置き換えるという意味でしょうか?
よろしくお願いします。
考え方は
「テキストを印刷する時のフォントの変更方法を教えてください」
の時と同じです。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200202/02020094.txt
どうも、関連付けが今ひとつピンと来ません。
もう少しがんばってみます。
既にダイアログに描画された物は印刷できないと云うことでしょうか?
> 既にダイアログに描画された物は印刷できないと云うことでしょうか?
クリップボード等ですれば可能だとおもいますが・・・
ダイアログに書いたのと同じ要領で書いたほうが簡単だと思います。
線等を書くのにはEIJIさんの指摘どおり縮尺だけ気をつけないといけません。
始めに縮尺率だけ求めて、ダイアログに書いたのと同じ要領で
縮尺率をかけると、同じものが印字されます。
あの・・・初心者を言い訳にしたくないのですが、話が飛びすぎて何をどうしたらうまくいくの
か解らなくなってきました。
ただ、単純に、罫線のついた帳票を印刷したいのです。
みなさんはお詳しいので、このスレッドの内容はすぐ理解できると思いますが、
できれば、ちょっとしたソースを見せていただけないでしょうか?
私たち多くの初心者はおそらく皆さんの通り過ぎた道が知りたいのです。
こういうと、「C++を勉強しろ!」とか「HELPを見ろ!」等と言いたくなると思います。
最もな意見です。ですが、解りづらいから、この掲示板を頼りにしているので、どうか、暖かい
意見をお願いします。
生意気な事を申し上げますが、初心者代表?として、よろしくお願いします。
管理者様、ならびにご意見をくださる皆様方、本当にすいません。
でも、これからもよろしくお願いします。
>あの・・・初心者を言い訳にしたくないのですが、話が飛びすぎて何をどうしたらうまくいく
の
>か解らなくなってきました。
クリリンさんが何がわからないかを具体的に(範囲を絞って)質問しないからではないでしょう
か?
あと、こういう記述をしてうまくいかなくて困っているとか・・
>ただ、単純に、罫線のついた帳票を印刷したいのです。
>みなさんはお詳しいので、このスレッドの内容はすぐ理解できると思いますが、
>できれば、ちょっとしたソースを見せていただけないでしょうか?
でしたらソフト会社に依頼してください(悪)
>私たち多くの初心者はおそらく皆さんの通り過ぎた道が知りたいのです。
>こういうと、「C++を勉強しろ!」とか「HELPを見ろ!」等と言いたくなると思います。
>最もな意見です。ですが、解りづらいから、この掲示板を頼りにしているので、どうか、暖か
い
>意見をお願いします。
私も勉強しろと言うこともありますが・・、基本文法を学んだりHELPを見るのは、初心者とし
ては、当然ではないでしょうか・・(初心者で無くてもHELPは見ます)
その上で、解らないとか、HELPで見つけられない場合に質問するのがこういう場では、無いで
しょうか?
>生意気な事を申し上げますが、初心者代表?として、よろしくお願いします。
>管理者様、ならびにご意見をくださる皆様方、本当にすいません。
>でも、これからもよろしくお願いします。