自動的に「ファイルを保存」して「閉じる」には – プログラミング – Home

自動的に「ファイルを保存」して「閉じる...
 
通知
すべてクリア

[解決済] 自動的に「ファイルを保存」して「閉じる」には


はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

////////////////////////////////////////////////////////////////////////////////

開発環境 : Visual C++ 6.0 Service Pack 3
動作環境 : Windows 98 Second Edition
MFC使用 MDIベース

////////////////////////////////////////////////////////////////////////////////
○○○Docクラスで、ある処理を、たとえば10時間ぐらいした後、自動的にデータを保存して
ファイルを閉じる、というようなことをしたいと思いました。データの保存はSerialize関数を
実装したので、普通に「上書き保存」をクリックすれば保存できるのですが、この「上書き保存
」と「ファイルを閉じる」を自動的にコンピュータにさせるにはどうすればいいのでしょうか。

はじめ、
○○○Docクラス内で、
POSITION pos = GetFirstViewPosition();
CView* pView = GetNextView(pos);
CChildFrame* pChildF = (CChildFrame*)pView->GetParentFrame();
として、CChildFrameクラスへのポインタを取得してから、

pChildF->SendMessage(ID_FILE_SAVE);
pChildF->SendMessage(ID_FILE_CLOSE);

とすればいいのかと思ったのですがうまく行きません。引数にこういったリソースIDを入れても
ダメなのでしょうか。
 実際、コンピュータにこういった、自動的にツールバーをクリックさせるようなことはよく
やりそうなことだと思ったので、僕自身のやり方がぜんぜん違うのかとも思ったのですが、どう
でしょうか。よろしくお願いします。


引用未解決
トピックタグ
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

コマンドIDとウィンドウメッセージは別物です。

やるならこうです。
AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_FILE_SAVE);


返信引用
はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

kazumaさん、お返事ありがとうございました。
やっぱり、kazumaさんのいうコマンドIDとウィンドウメッセージは違うものと考えなくては
いけなかったんですね。うすうすはそんな感じがしていたのですが、では、どうやって、
コマンドIDのメッセージを出せばいいのだろうと思案に暮れていたところでした。

 実際、

AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_FILE_SAVE);

と変えてみるととてもうまく動くようになりました。これで、また、プログラムを再開する
ことができます。
 ありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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