掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CListCtrlなどの派生クラスの使いかた(2) (ID:71050)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200907/09070034.txt 上記の質問をさせていただいたものです。 なぜか一覧から消えてしまっているので、新規に追記させていただきます (ご意見自体はいただけなかったようで、自前で調べた報告のみですが)。 書き込み自体は残っているようですし、特に変なこと書いていないはずですが、 もしなんらかの違反をしているのでしたら大変失礼しました。 その際にはお手数ですがこれも削除していただければと思います。 自前でVS2008SP1を導入し、CMFCFontComboBoxを使ってみました。 OnInitDialogで m_combo.m_bDrawUsingFont = TRUE; m_combo.Setup(); と書いてたところ、コンボボックスにフォント名一覧が自動で挿入され、 各項目はそのフォントで描画されますが、 親クラス(CComboBox)のメンバ関数を使って m_combo.InsertString(0, _T("ああああああああ")); m_combo.SetItemData(0, 0x12345678); などと自前で項目を入れてみたところ、 CMFCFontComboBox::DrawItemで落ちてしまいました。 ItemData値にCMFCFontInfoのポインタが入っているという前提で、 勝手にItemData値を入れられたりすることは想定していないようです。 また、 m_combo.DeleteString(0); と項目を直接削除してみたところ、 その項目に対応するCMFCFontInfoが削除されずに残り、 終了時にダンプしてしまいました。 MFC自体が、「newで確保した情報のポインタをItemDataに入れて」 「基本クラスにキャストせずに用意された関数だけ呼んでもらう」 という手抜き(?)になっているようです。 最初に書かせていただいた疑問は、深く考えすぎていたのかもしれません。 みなさんありがとうございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.