• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リストボックスのオーナードローでInsertStringした文字列の取得)

リストボックスのオーナードローで文字列の取得方法

このQ&Aのポイント
  • リストボックスのオーナードローで文字列を取得する方法について調査しました。
  • リストボックスのリソースを変更し、ウィンドウメッセージにハンドラを追加します。
  • ハンドラ内では、行の高さや背景色、文字色を設定し、文字列を表示します。しかし、文字化けの問題が発生しました。

質問者が選んだベストアンサー

  • ベストアンサー
  • nuki
  • ベストアンサー率30% (6/20)
回答No.1

char wbuf[256]; で取得されたメモリ領域が、4.で書いた関数を出た時点で 解放されてしまい、リストボックスが描画する時点 (OnDrawItem関数)では文字列が無くなってしまっている ことが原因でしょう。 (見ることのできたソースからはオーナードローは無関係 に思えます) ですので、リストボックスの項目を削除するまでの間は mallocなどで保持しておく必要がある筈です。

1qazxsw2
質問者

お礼

そうでした!煮詰まっていてまったくその事に 思いが及びませんでした。 明日にならないと試せないのですが すぐにお礼が言いたくてお返事さしあげました。 ありがとうございました。

1qazxsw2
質問者

補足

先日はご回答ありがとうございました。 教えていただいた方法でうまくリストボックスの 表示は行える様になったのですが、今日になって このリストボックスのスクロールがちゃんと動いて いないことに気がつきました。 リストボックスのリソースで垂直スクロールバーを TRUEに設定しているだけなのですが、オーナー描画 した場合はスクロール処理も自分で記述しなければ いけないのでしょうか? そうかと思い、親ダイアログにOnVScrollハンドラ を用意してもイベントが上がってきませんでした。 ご教授宜しくお願いします。

関連するQ&A

専門家に質問してみよう