リストボックスの初期化について – プログラミング – Home

リストボックスの初期化について
 
通知
すべてクリア

[解決済] リストボックスの初期化について


Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

リストボックスについてなのですが、リストが存在していない状態で、
リストボックス内を選択(クリック)すると、
”フフフフフフフフフフフ”と文字が表示されてしまいます。
原因がわからないので、どなたか教えていただけますか?
状態は、オーナードローを使用していてResetContent();
も使用しています。
できれば早めに解決したいのですが。


引用未解決
トピックタグ
Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

開発環境は、
VC++ver6.0 windows2000 です。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

表示される文字列は、どうやって取得していますか?
リストが存在していない状態でデータ取得系の処理を行うと、
LB_ERRを返して失敗しませんか?


返信引用
Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

説明不足ですいません。
ResetContent();
の初期化処理後、リストには何も手を加えていません。
リストの項目には何も表示されていない状態で、
画面上のリストボックスでクリックすると、
先ほどのような状態が起きてしまうのですが。
すみませんが、よろしくお願いいたします。
ためしに
GetCount()で戻り値をみましたが初期化後は0でした。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

> ”フフフフフフフフフフフ”と文字が表示されてしまいます。

どこに表示されたのでしょう。
リストボックス上だったら……大問題な気がしますけど……。


返信引用
Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

あの、リストボックス上です・・・。
大問題なんですか?
解決方法とかはありますか?


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

ResetContent()で項目を0件にしたんですよね?
GetCount()で0が返ってくるということで、ここまでは問題ないです。
で、リストボックス上に”フフフフフフフフフフフ”が出ると言うのは、どういうことですか?
リストボックスの項目として、これが表示されてるとも解釈できますが、
そうだとするなら、状況の説明に矛盾がありますよね?

「リストボックス上」とは、どういうことですか?


返信引用
Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

なにも表示されていないし、GetCount()で0が返ってきている状態なのに、
クリックすると”フフフ・・・”が項目の最上段に表示されてしまうのです。

オーナードローのリストボックスなので、クリックイベントか何かを
自分で処理しなければならないのでしょうか?


返信引用
?
 ?
(@?)
ゲスト
結合: 23年前
投稿: 49
 

リストボックスって確かアイテムがなくても
フォーカスが当たると1行目に点線の矩形を描きません?
つまりアイテムがなくてもオーナードローが呼ばれるので
オーナードローの中でアイテムの有無を確認せず
文字列を取得し(エラーチェックもしないで)表示している
それがたまたま”フフフフフフフフフフフ” なのでわ?


返信引用
Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

解決方法はないのでしょうか??


返信引用
tetsu
 tetsu
(@tetsu)
ゲスト
結合: 23年前
投稿: 10
 

TETSUです。

たとえば、下記のように

 char test[256];

AddString(test);

とすると、リストボックスには”フフフフフフフフ”と表示されます。
# testの初期値は何もしていないと0xccccccccなので

どこかで同じようなことがおきていませんか?

# すべてのAddStringにブレークをあてて、確かめてみては?

はずしていたらごめんなさい。


返信引用
tetsu
 tetsu
(@tetsu)
ゲスト
結合: 23年前
投稿: 10
 

tetsuです。

ごめんなさい。オーナードローなら

>AddString(test);

TextOutかな。


返信引用
?
 ?
(@?)
ゲスト
結合: 23年前
投稿: 49
 

>解決方法はないのでしょうか??
だから、sugarさんの 2002/09/18(水) 17:03:14 の質問
「表示される文字列は、どうやって取得していますか?」
オーナードローの引数に文字列はないんだから
中でご自分で取得されてますよね?
その時エラーがでてませんか?
文字列取得前にアイテムの有無は調べてないのですか?

この質問に答えてもらわないと・・・・


返信引用
?
 ?
(@?)
ゲスト
結合: 23年前
投稿: 49
 

追伸
>つまりアイテムがなくてもオーナードローが呼ばれるので
呼ばれてますよね?
ブレークポイントで止めてみてください。


返信引用
Super 初心者
 Super 初心者
(@Super 初心者)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

解決しました。
DrawItem内部のDrawTextで取得していました。
その時の文字列の初期化を忘れていました。
皆さんありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました