ab.com コミュニティ
https://www.activebasic.com/forum/

”名前を付けて保存”を加えたい
https://www.activebasic.com/forum/viewtopic.php?t=5
ページ 11

作成者:  クックル [ 2005年5月30日(月) 19:08 ]
記事の件名:  ”名前を付けて保存”を加えたい

多分、初歩的な質問になります。

”Win32プログラミング講座 ~ Step11. テキスト エディタを作る ~”でメニューに”名前を付けて保存”を加えたいと思ったんですが、どう
言う所作になるのかさっぱり解りません。

良かったら、ソース?とアドバイスをいただけませんでしょうか?

お願いします。

作成者:  イグトランス [ 2005年5月30日(月) 19:08 ]
記事の件名: 

現在のStep 11の保存は実質的に名前をつけて保存になっています。
なのでこれを名前をつけて保存にして、新たに上書き保存の実現を図ることになります。

上書き保存はファイルを開いている状態であればそこへ書き出し、そうでなければ名前をつけて保存と同じ挙動をします。(どんなソフトもこういう挙動をしています)

例えばファイルハンドルをグローバル変数にする方法があります。
開くを選んだときにCreateFile()でファイルを開き、中身を読み込んだ後にCloseHandle()を呼ばず、そのグローバル変数へハンドルをしまいます。
上書き保存時にはこれに何かハンドルが入っていればファイルが開かれていると判断することにして、上書き保存ではそのハンドルへ書き出します。
ハンドルがNULLなどであった場合はファイルが開かれていないということなので名前をつけて保存のイベントの関数を呼び出すようにすれば良いでしょう。

そして名前をつけて保存のときやプログラムが終了するときにはグローバル変数のハンドルが有効かどうかを判断し、有効なハンドルであればCloseHandle()を呼ぶようにすれば完璧でしょう。

作成者:  クックル [ 2005年5月30日(月) 19:09 ]
記事の件名: 

ありがとうございました。
実際にプログラムを動作させてみて、確認できました。

ただ、残念ながら、書いていただいた”上書き保存”は、まだ、内容が理解できません。
現在勉強中なので。

勉強課題にします。

ありがとうございました。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/