過去ログ「出力画像をワードに貼り付けるには」について – プログラミング – Home

過去ログ「出力画像をワードに貼り付ける...
 
通知
すべてクリア

[解決済] 過去ログ「出力画像をワードに貼り付けるには」について


リング
 リング
(@リング)
ゲスト
結合: 22年前
投稿: 1
Topic starter  

ここに書き込ませて頂くのは初めてのリングです。
何時も過去ログを検索しつつ役立てさせて頂いているのですが、
題名にある質問においての

>SDIのOnDrawで出力した画像をWordに貼り付けるにはどうしたらいいでしょうか?
>「ファイル」の「印刷」からprnファイルにはできるんですが・・・。
>よろしくお願いします。
>
>Wordに貼り付けるには、EMFファイル(Enhanced Meta File)
>にする必要があります。
>CreateEnhMetaFile() とかで調べるといいかもしれません。
>
>また、クリップボードにEMFファイル(ちょっと違うけど)
>を置けば、Word上でペースト(Ctrl+V)で貼り付けられます。

と言う部分がうまく出来ません。
自分でも調べてはいるのですが詳しく説明していただければ幸いです。


引用未解決
トピックタグ
らふ
 らふ
(@らふ)
ゲスト
結合: 23年前
投稿: 18
 

何がうまくいかないのかわかりません。

Googleで「拡張メタファイル」を検索すると山のようにサンプルがでます。
まずはそれらを参考にやってみて、できなければ具体的に質問してください。


返信引用
リング
 リング
(@リング)
ゲスト
結合: 22年前
投稿: 35
 

らふさんご指摘いただいてありがとうございます。

とりあえずはサンプルをみながら頑張ってみたいと思います。
ちなみにうまくいかないと言うのはプログラム上のどの部分でEMFを宣言(?)すれば良い
のか?と言う単純な事なようです。
作っているプログラムは
#include<stdio.h>
int d[10000],x,y,z,a,aa,bb,cc,i;
x=y=z=a=0;
for(z=0,a=5,i=1;z<500;z+=5,a+=5){
for(x=0,y=5;x<500;x+=5,y+=5,i++){
CRgn myRgn;
myRgn.CreateRectRgn(x,z,y,a);
CBrush aaa(RGB(aa,bb,cc));
d[1]=a;
~d[10000]=b;//d「1」からd「10000」まで10000パターンのd値をとる
aa=bb=cc=d[i];
pDC->SelectObject(&myRgn);
pDC->SelectObject(&aaa);
pDC->PaintRgn(&myRgn);
と言うような感じです。


返信引用
リング
 リング
(@リング)
ゲスト
結合: 22年前
投稿: 35
 

サンプルと格闘してみましたがいまいち解決の糸口が見えてきません。
手順としてはSDIでスケルトンを作成し上記のプログラムを入れ、
そこにサンプルを参考にメタファイルを作成するプログラムを付け加える。
と言った流れでよいのでしょうか?

何やらどんどん質問が変わってきている気もしますが教えて頂きたいと思います。
環境はWin2000VC++6.0でMFCを使っています。


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

C/C++の文法がわかっていない状態でEMFいじるのは無謀ですよ?


返信引用
リング
 リング
(@リング)
ゲスト
結合: 22年前
投稿: 35
 

nさんの言うとおり文法を疎かにしてサンプルや例をチョロチョロ変えて使ってきた私には
無謀だったように思います。今はとりあえず他の方法を考えながら文法についても1から勉
強していきたいと思います。

ここはこれで済にさせて頂きますが、SDIでOnDrawしたMFCの画像をWardに貼り付ける方法
について何かアドバイスがありましたら教えてもらいたいと思います。

Wardに貼り付けるのではなく単純に画像を印刷の際拡大するような方法でも構いません。

最後に拙い質問に書き込みを下さいましたらふさん、nさん本当にありがとうございました。


返信引用
リング
 リング
(@リング)
ゲスト
結合: 22年前
投稿: 35
 

すみません済みを忘れました。


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

Alt+PrintScreenキーでアクティブウィンドウ像をクリップボードにコピーし、
それからWordに貼り付けるというのではダメですか?


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

EMF の作成についてですが、
描画部分は既に出来ているようですから、
描画に使う DC を CMetaFileDC (CDC の派生クラス) に変えるだけで出来ますよ。

CMetaFileDC dc;
dc.CreateEnhanced(NULL, test.emf, NULL, NULL);

(ここで dc を使って描画する)

dc.CloseEnhanced();


返信引用
リング
 リング
(@リング)
ゲスト
結合: 22年前
投稿: 35
 

二つの方法で共に問題を解決することが出来ました。

nさん、kazumaさんありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました