「MFC リストボックスに要素を追加」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==MFC リストボックスに要素== [VC++]{{category MFC}} ===手順=== ====リストボックスに変数を割り当てる(m_list_line)==== File:0782_mfc_lis…」) |
|||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
− | ==MFC リストボックスに要素== | + | ==[[MFC]] リストボックスに要素== |
− | [VC++] | + | [[VC++]] | [[Category:MFC]] |
===手順=== | ===手順=== | ||
14行目: | 14行目: | ||
int i = 0; | int i = 0; | ||
− | if (file.Open(fileName, CFile:: | + | if (file.Open(fileName, CFile::mode[[R]]ead)) { |
− | while(file. | + | while(file.[[R]]eadString(line)) { |
− | m_list_line.AddString(line); // | + | m_list_line.AddString(line); // <- 行を追加 |
} | } | ||
24行目: | 24行目: | ||
} | } | ||
− | ====文字化け==== | + | ====[[文字化け]]==== |
− | MFC ファイルを読む で、TRACEしたときは、文字化けを起こさなかったが、リストボックスに追加すると文字化けが発生 | + | [[MFC ファイルを読む]] で、TRACEしたときは、文字化けを起こさなかったが、リストボックスに追加すると文字化けが発生 |
[[File:0783_mfc_listbox_02.jpg]] | [[File:0783_mfc_listbox_02.jpg]] | ||
31行目: | 31行目: | ||
=====理由===== | =====理由===== | ||
このあたりを参照 | このあたりを参照 | ||
− | *http://fatalita.sakura.ne.jp/3DLib/ | + | *http://fatalita.sakura.ne.jp/3DLib/[[R]]ef/_T/ |
=====対策===== | =====対策===== | ||
− | プロジェクトのプロパティの文字セットを、「[文字コード | + | プロジェクトのプロパティの文字セットを、「[[文字コード|マルチ バイト文字セット]]を使用する」に変更する。 |
(変更しない状態だとそりゃもう面倒くさそうなのであきらめた) | (変更しない状態だとそりゃもう面倒くさそうなのであきらめた) | ||
[[File:0781_char_code_01.jpg]] | [[File:0781_char_code_01.jpg]] | ||
43行目: | 43行目: | ||
m_src_file.GetWindowTextA(fileName); | m_src_file.GetWindowTextA(fileName); | ||
− | ==== | + | ====[[文字化け]]直るも・・・==== |
− | + | [[文字化け]]は直った。 | |
L&Fがさっきと違うくないか? | L&Fがさっきと違うくないか? | ||
[[File:0784_mfc_listbox_03.jpg]] | [[File:0784_mfc_listbox_03.jpg]] |
2020年2月16日 (日) 04:29時点における最新版
目次
MFC リストボックスに要素
VC++ |
手順
リストボックスに変数を割り当てる(m_list_line)
ファイルを読み込み、1行を1要素として追加
// テキストボックスの値を、CStringにコピー m_src_file.GetWindowTextW(fileName); CStdioFile file; CString line; int i = 0; if (file.Open(fileName, CFile::modeRead)) { while(file.ReadString(line)) { m_list_line.AddString(line); // <- 行を追加 } file.Close(); }
文字化け
MFC ファイルを読む で、TRACEしたときは、文字化けを起こさなかったが、リストボックスに追加すると文字化けが発生
理由
このあたりを参照
対策
プロジェクトのプロパティの文字セットを、「マルチ バイト文字セットを使用する」に変更する。 (変更しない状態だとそりゃもう面倒くさそうなのであきらめた)
ソースを若干修正
m_src_file.GetWindowTextW(fileName);
↓
m_src_file.GetWindowTextA(fileName);
文字化け直るも・・・
文字化けは直った。 L&Fがさっきと違うくないか?
参考キーワード
- MultiByteToWideChar
- WideCharToMultiByte
- CA2W
- CW2CT
© 2006 矢木浩人