win32apiのエディットボックスについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ttb
記事: 17
登録日時: 6年前
住所: 東京都

win32apiのエディットボックスについて

#1

投稿記事 by ttb » 6年前

win32apiのエディットボックスについて質問させていただきます.
キーボードからエディットボックスに入力した文字列を変数として,その変数名のファイルを作成することは可能でしょうか?
ファイル名を変数にして毎回違う名前のファイルを作成したいということです.
コードも載せて頂けるとありがたいです.
お分かりになる方いらっしゃりましたらご教授お願います.

環境 
windows10
visual studio 2013

たいちう
記事: 418
登録日時: 13年前

Re: win32apiのエディットボックスについて

#2

投稿記事 by たいちう » 6年前

エディットボックスの使い方は以下が参考になりませんか。

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でも好きな方法でできるでしょう。

ttb
記事: 17
登録日時: 6年前
住所: 東京都

Re: win32apiのエディットボックスについて

#3

投稿記事 by ttb » 6年前

ありがとうございます.自分でしらべてみたのですがうまくいきませんでした.
今回は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;

hage

Re: win32apiのエディットボックスについて

#4

投稿記事 by hage » 6年前

参考になるかわかりませんが・・・

Windows標準のエディットボックスコントロールには入力された文字列からその文字列をファイル名として自動的にファイルを作成する機能は無いと思います。
ttbさんがやられている通り、入力された文字列を一旦バッファに取得し(MAX_PATHという定数があるのでそれを利用するといいです)、そこからファイルを作成する必要があると思います。

以下、OPENCVとうのがどの様なものか知らないのですがコードを見させてもらって思った点をいくつか・・・、
UNICODEプログラムのようですが、ファイル名を格納する文字列を「"(ダブルクオート)」で囲んだ形でVideoWriterクラスのコンストラクタに渡す必要があるのでしょうか(ファイルのパスのみを格納するバッファでしたらワザワザダブルクォートで囲む必要性がわかりませんので)。
またVideoWriterクラスのコンストラクタへ渡すファイルのパスですが、フルパスでなくてもいいのでしょうか。

VideoWriterクラス自体にファイルを作成する機能が無いようでしたら、ストリームを使って入出力を行っているようですし、iostreamでファイルをオープンしてみる等試してみてはいかがでしょうか?

乱文、乱筆失礼致しました

ttb
記事: 17
登録日時: 6年前
住所: 東京都

Re: win32apiのエディットボックスについて

#5

投稿記事 by ttb » 6年前

ダブルコーテーションを外したら保存することが出来ました.
ありがとうございました.

返信

“C言語何でも質問掲示板” へ戻る