DirectSoundを利用してマイクから録音するサンプルプログラムを作りました。
詳しくは以下のホームページにあります。
http://www.kana-soft.com/tech/sample_0011.htm
レイテンシを短くしようと試行錯誤したのですが、挫折しました。。。
2011年06月04日
DirectSoundでマイクから録音するサンプルプログラムを作りました
posted by kana-soft at 22:18| Comment(0)
| C/C++
2011年06月02日
MME利用してマイクから録音するサンプルプログラムを作りました
マルチメディアAPI(MME)利用してマイクから録音するサンプルプログラムを作りました。
詳しくは以下のホームページにあります。
http://www.kana-soft.com/tech/sample_0010.htm
依然作ったWAVファイルの再生プログラムをカスタマイズして作ったので、割と早く出来ました。
詳しくは以下のホームページにあります。
http://www.kana-soft.com/tech/sample_0010.htm
依然作ったWAVファイルの再生プログラムをカスタマイズして作ったので、割と早く出来ました。
posted by kana-soft at 14:53| Comment(0)
| C/C++
2011年05月28日
ASIOでサウンド再生を行うサンプルプログラムを作りました
ASIO SDKを利用してWAVEファイルを再生する簡単なサンプルプログラムを作りました。
詳しくは以下のホームページにあります。
http://www.kana-soft.com/tech/sample_0004.htm
とりあえず動作するサンプルプログラムですが、少々不明な点があります。 m(_ _)m
詳しくは以下のホームページにあります。
http://www.kana-soft.com/tech/sample_0004.htm
とりあえず動作するサンプルプログラムですが、少々不明な点があります。 m(_ _)m
posted by kana-soft at 23:19| Comment(0)
| C/C++
2011年05月20日
ユニコードを使用したときに文字化けするときの対処
Windowsのコンソールアプリケーションでユニコードを使用してwprintf()で日本語が文字化けする場合、「_wsetlocale」をプログラムの先頭で呼び出しておくと文字化けしないみたいです。
原因はリソースファイルを組み込んでいない為だと思うのですが。。。。
_wsetlocale( LC_ALL, L"japanese" );
原因はリソースファイルを組み込んでいない為だと思うのですが。。。。
posted by kana-soft at 15:29| Comment(0)
| C/C++
2011年05月17日
タブオーダーを設定する
今まであまり意識していなかったのですが、ダイアログに貼り付けたボタンやテキストボックスのフォーカスの移動を[TAB]キーで行うときの移動する順番を「タブオーダー」というらしいです。
Visual BasicやC#の場合、各コントロールのプロパティ「TabIndex」に[TAB]キーでの移動順序を設定すればよいのですが、C/C++の場合どのように指定するのか判らなかったので調べてみました。
Visual Studio上でタブオーダーを設定する場合、リソースビューからタブオーダーを設定するダイアログを開いて、メニューの
[書式] - [タブオーダー]と選択するか、[Ctrl]キー + [D]を押すと、現在ダイアログで設定されている各コントロールのタブオーダーが表示されます。
ソースコード上で、どのようになっているかと言うと、リソース定義ファイル(.rc)に定義してある該当ダイアログに定義してある各コントロールの上から順番にタブオーダーが 1,2,3,... となるようです。
この場合、タブオーダーは
1 → IDC_TEXT1
2 → IDC_COMBOBOX1
3 → IDOK
4 → IDCANCEL
の順になります。
プログラムから動的にタブオーダーを設定する場合、「SetWindowPos」を使用します。
MFCで書くと以下のようになります。
この場合、タブオーダーは
1 → IDOK
2 → IDCANCEL
3 → IDC_COMBOBOX1
4 → IDC_TEXT1
の順になります。
因みにHTMLでタブオーダーを指定するときは、「tabindex」を使用します。
この場合、タブオーダーは
1 → c
2 → b
3 → a
の順になります。
Visual BasicやC#の場合、各コントロールのプロパティ「TabIndex」に[TAB]キーでの移動順序を設定すればよいのですが、C/C++の場合どのように指定するのか判らなかったので調べてみました。
Visual Studio上でタブオーダーを設定する場合、リソースビューからタブオーダーを設定するダイアログを開いて、メニューの
[書式] - [タブオーダー]と選択するか、[Ctrl]キー + [D]を押すと、現在ダイアログで設定されている各コントロールのタブオーダーが表示されます。
ソースコード上で、どのようになっているかと言うと、リソース定義ファイル(.rc)に定義してある該当ダイアログに定義してある各コントロールの上から順番にタブオーダーが 1,2,3,... となるようです。
IDD_DIALOG1 DIALOGEX 0, 0, 338, 313
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Dialog"
FONT 9, "MS UI Gothic", 0, 0, 0x1
BEGIN
EDITTEXT IDC_TEXT1,10,57,137,14, ES_AUTOHSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBOBOX1,58,18,110,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,281,7,50,16
PUSHBUTTON "キャンセル",IDCANCEL,281,25,50,16
END
この場合、タブオーダーは
1 → IDC_TEXT1
2 → IDC_COMBOBOX1
3 → IDOK
4 → IDCANCEL
の順になります。
プログラムから動的にタブオーダーを設定する場合、「SetWindowPos」を使用します。
MFCで書くと以下のようになります。
GetDlgItem( IDCANCEL )->SetWindowPos( &wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
GetDlgItem( IDOK )->SetWindowPos( GetDlgItem( IDCANCEL ), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
GetDlgItem( IDC_COMBOBOX1 )->SetWindowPos( GetDlgItem( IDOK ), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
GetDlgItem( IDC_TEXT1 )->SetWindowPos( GetDlgItem( IDC_COMBOBOX1 ), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
この場合、タブオーダーは
1 → IDOK
2 → IDCANCEL
3 → IDC_COMBOBOX1
4 → IDC_TEXT1
の順になります。
因みにHTMLでタブオーダーを指定するときは、「tabindex」を使用します。
<form action="xx">
<input type="button" tabindex=3 value="a"><br>
<input type="button" tabindex=2 value="b"><br>
<input type="button" tabindex=1 value="c"><br>
</form>
この場合、タブオーダーは
1 → c
2 → b
3 → a
の順になります。
posted by kana-soft at 19:43| Comment(3)
| C/C++