Win2000 VC6.0 MFCで作成しているのですが、
表示しているものをコンボボックス等そのままプリント
アウトしたいのです。きれいに紙の大きさにあわせて
プリントアウトしたいのです。
プリントスクリーンをしてペイントなどにペーストして
プリントすればいいのですがそれではめんどくさいので
どうにかしてできないものかと考えているのですが、
どうも行き詰まってしまいました。
今のプログラムは、BitBltでコピーするとプリンタに
当たり前ですが拡大されず紙はでます。
そこで拡大してプリントアウトするため
ログでStretchBltを使って拡大していたので
使ってみたのですが、どうも紙に出てくれません。
どこが違っているのでしょうか?お願いします。
CDC *testDC;
testDC=CXXXXView::GetWindowDC();
CPrintDialog printdlg(FALSE);
CDC priDC;
if(printdlg.DoModal()==IDOK){
HDC printDC;
DOCINFO di;
printDC=printdlg.GetPrinterDC();
priDC.Attach(printDC);
diの設定。
priDC.StartDoc(&di);
priDC.StartPage();
priDC.BitBlt(0,0,1000,1000,testDC,0,0,SRCCOPY);
// priDC.SetStretchBltMode(COLORONCOLOR);
// priDC.StretchBlt(0,0,1500,1500,testDC,0,0,500,500,SRCCOPY);
priDC.EndPage();
priDC.EndDoc();
::DeleteDC(printDC);
}
BitBlt等の数字は後ほどあわせようと思ってます。
自己解決できました。
結果としてはハードコピー、印刷などで検索すると
まさに自分がしようとしていたことに近いことをしている方が
いらっしゃいました。
さらにソースを公開していましたので
拝見させていただきました。
感謝です。
プログラム本体の内容は
ハンドルからビットマップを作成し
それを伸ばしてプリンタに渡しています。