はじめまして宮崎県です。OSはWindowsNTです。
VC++6.0 MFCを使って、SDIのプログラムを作っています。
あるショートカットを押すとディスクトップの全画面をキャプチャーする
プログラムを考えています。
アクセラレータで任意のショートカットキーにIDを設定して、viewクラス
で、メッセージを[command]に設定して、関数を追加しました。
プログラムは、色々なサイトや本を参考にして作りました。
void CXxxxView::Onxxxxx()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
CDC* pDC;
pDC=GetDC();
;
; (省略)
pDC->BitBlt( 0, 0, wx, wy,&cdc, 0, 0, SRCCOPY);
;
; (省略)
DeleteObject(Bitmap);
}
このプログラムでは、ショートカットキーを押すと画面がキャプチャーされるのですが
再描画の問題が発生するので。OnDraw関数の中に上記のプログラムを書くことにしまし
た。しかし、OnDraw関数の中にプログラムを書くと、実行したと同時に画面がキャプチ
ャーされて表示してしまいます。
ショートカットキーを押すと初めて画面がキャプチャーできるようにしたいのです。
ショートカットキーと再描画の問題をうまく解決できる方法やヒントを教えて下さい。
初心者なので、的はずれな発言や質問などしているかもしれませんが、お許し下さい。
フラグでも準備してできませんか?
Bunさんありがとうございました。
まだ始めたばかりでフラグの利用方を思いつきませんでした。
Bunさんのフラグの一言で道が開けました。過去ログや自分
なりに調べた結果、再描画の方に少し問題があるものの、実
行と同時に表示されることは、なくなりました。
今後ともよろしくお願いします。
ショートカットキーが押されたときにキャプチャしてビットマップに保存しておき、
OnDarw ではそのビットマップを画面に表示するだけ、
というのがいいのではないかと。
ありがとうございます。
ショートカットキーが押されたときにキャプチャしてビットマップに保存する
ことによって再描画の問題もなくなりました。