win32apiのエディットボックスについて質問させていただきます.
キーボードからエディットボックスに入力した文字列を変数として,その変数名のファイルを作成することは可能でしょうか?
ファイル名を変数にして毎回違う名前のファイルを作成したいということです.
コードも載せて頂けるとありがたいです.
お分かりになる方いらっしゃりましたらご教授お願います.
環境
windows10
visual studio 2013
win32apiのエディットボックスについて
Re: win32apiのエディットボックスについて
エディットボックスの使い方は以下が参考になりませんか。
Windows SDK編 第1部
第15章 いろいろなコントロール
http://www.kumei.ne.jp/c_lang/sdk/sdk_15.htm
(猫でもわかるプログラミング(トップ)
http://www.kumei.ne.jp/c_lang/index.html)
いきなり15章を読んで理解できなければ、イントロダクションから順に試すのがお勧めです。
ファイル作成は、fopenでもofstreamでもCreateFileでも好きな方法でできるでしょう。
Windows SDK編 第1部
第15章 いろいろなコントロール
http://www.kumei.ne.jp/c_lang/sdk/sdk_15.htm
(猫でもわかるプログラミング(トップ)
http://www.kumei.ne.jp/c_lang/index.html)
いきなり15章を読んで理解できなければ、イントロダクションから順に試すのがお勧めです。
ファイル作成は、fopenでもofstreamでもCreateFileでも好きな方法でできるでしょう。
Re: win32apiのエディットボックスについて
ありがとうございます.自分でしらべてみたのですがうまくいきませんでした.
今回はopencvを使用してカメラ映像をavi形式のファイルに保存したく以下のようなコードを記述しました.
コードは一部分でありそのほかのコードは問題なく機能していました.
今回はopencvを使用してカメラ映像をavi形式のファイルに保存したく以下のようなコードを記述しました.
コードは一部分でありそのほかのコードは問題なく機能していました.
TCHAR edit_str[256];
TCHAR result[256];
Mat imgMatCamera1;
GetDlgItemText(hwnd,
EDIT_ID1,
(LPTSTR)edit_str,
sizeof(edit_str));//エディットボックスからの文字列を取得しedit_strに代入
wsprintf(result, TEXT("¥"%s.avi¥""), (LPTSTR)edit_str);
VideoWriter writer(result, CV_FOURCC_DEFAULT, fps, Size(640, 480), true);
cap1 >> imgMatCamera1;
writer << imgMatCamera1;
Re: win32apiのエディットボックスについて
参考になるかわかりませんが・・・
Windows標準のエディットボックスコントロールには入力された文字列からその文字列をファイル名として自動的にファイルを作成する機能は無いと思います。
ttbさんがやられている通り、入力された文字列を一旦バッファに取得し(MAX_PATHという定数があるのでそれを利用するといいです)、そこからファイルを作成する必要があると思います。
以下、OPENCVとうのがどの様なものか知らないのですがコードを見させてもらって思った点をいくつか・・・、
UNICODEプログラムのようですが、ファイル名を格納する文字列を「"(ダブルクオート)」で囲んだ形でVideoWriterクラスのコンストラクタに渡す必要があるのでしょうか(ファイルのパスのみを格納するバッファでしたらワザワザダブルクォートで囲む必要性がわかりませんので)。
またVideoWriterクラスのコンストラクタへ渡すファイルのパスですが、フルパスでなくてもいいのでしょうか。
VideoWriterクラス自体にファイルを作成する機能が無いようでしたら、ストリームを使って入出力を行っているようですし、iostreamでファイルをオープンしてみる等試してみてはいかがでしょうか?
乱文、乱筆失礼致しました
Windows標準のエディットボックスコントロールには入力された文字列からその文字列をファイル名として自動的にファイルを作成する機能は無いと思います。
ttbさんがやられている通り、入力された文字列を一旦バッファに取得し(MAX_PATHという定数があるのでそれを利用するといいです)、そこからファイルを作成する必要があると思います。
以下、OPENCVとうのがどの様なものか知らないのですがコードを見させてもらって思った点をいくつか・・・、
UNICODEプログラムのようですが、ファイル名を格納する文字列を「"(ダブルクオート)」で囲んだ形でVideoWriterクラスのコンストラクタに渡す必要があるのでしょうか(ファイルのパスのみを格納するバッファでしたらワザワザダブルクォートで囲む必要性がわかりませんので)。
またVideoWriterクラスのコンストラクタへ渡すファイルのパスですが、フルパスでなくてもいいのでしょうか。
VideoWriterクラス自体にファイルを作成する機能が無いようでしたら、ストリームを使って入出力を行っているようですし、iostreamでファイルをオープンしてみる等試してみてはいかがでしょうか?
乱文、乱筆失礼致しました
Re: win32apiのエディットボックスについて
ダブルコーテーションを外したら保存することが出来ました.
ありがとうございました.
ありがとうございました.