
再投稿ですみません。
CListCtrl クラス //m_xcList はCListCtrl型のDDX変数
リストコントロールの一部のフォント情報を取得したいです。
void CMylistCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){~~~}
DrawItem(↑)の中で、描画すると同時に、太文字・赤色情報を、
リストコンロールの各行の最後のカラムを退避用フィールド(セル)として使用し、
文字で「BOLD」「RED」「BOLD,RED」「」のように入れれば、何とか作れそうです。
全然スマートじゃないですよね。
この方法であれば、任意のタイミングでフォント情報を取ることはできそうですが…
またはDrawItemを実行させるために、ダミーの行を1行挿入、その後削除して、
エクスポートする事も考えています。
(データに変更があった場合、必ず呼び出されるから、無意味かもしれないですけど)
処理速度は遅くなると思いますし、僕には、これしかできませんが、
もっと、方法があるはずですよね…
それかlParamを割り振って、何とかするほうがいいですかね。
投稿してからずっと
「リストコントロールのフォント情報取得 VC++ MFC -VB -.Net "LogFont"」
「FW_BOLD FONT VC++ LOGFONT取得」「CFont::CreatePointFont」などで、
検索したのですが、キーワードさえつかめずに、困りました(/_;)
教えてGOOで参考になりそうなのが、3つ↓
■リストの行ごとの設定変更について
http://oshiete.goo.ne.jp/qa/4165655.html
■リストコントロール内の文字の大きさ(ポイント数を)別々にしたい。
http://oshiete.goo.ne.jp/qa/5746038.html
■リストボックスのフォントをサイズを変更したい
http://qanda.rakuten.ne.jp/qa4479812.html?order= …
せめてキーワードかヒントだけでも…助けて下さい!
No.1ベストアンサー
- 回答日時:
> 再投稿ですみません。
別にいいけど、これだけじゃ前回の質問がどんな内容だったのかわかりません。
前回の質問のリンクを書いておくとかしましょう。
DrawItemをオーバーライドして、アイテムを自分で描画している場合の話ですよね。
フォント情報が必要なのではなくて、各行がどんなフォント・色で描画されているかが知りたいんじゃないですか? そうであけば、DrawItemの中で
・どんなときに太字で描画しているのか
・どんなときに赤色で描画しているのか
が分かれば、DrawItem以外の場所で情報を取得する方法があるでしょう。
どうしてもDrawItem内でないと判断できないのであれば、CListCtrl::SetItemDataでデータを設定すれば、他の処理内でもCListCtrl::GetItemDataでそのデータを取り出せるので、判断できるでしょう。
できました!!返信が遅くなってすみません。
さらに質問の仕方が分からなくてごめんなさいでした。
【前回の質問】リストコントロール特定行のフォント情報取得VC++
http://oshiete.goo.ne.jp/qa/6747822.html
【解決済みの質問】リストコンロールの一行だけを太文字に(VC++)
http://oshiete.goo.ne.jp/qa/6734007.html
■今回、お教え頂いた部分
//CListCtrl::SetItemData(MSDN)↓
//http://msdn.microsoft.com/ja-jp/library/936147y4 …
if( GetItem(&lvItem) == TRUE ){
if( nCnt == 0){ //アイテムの場合
SetItemData(nItem, lf.lfWeight);
}
}
これだけで済むとは…、短すぎてソースを載せるのが恥ずかしくなります。
SetItemDataの第二引数は数値ですから、太文字と赤文字を判定するのも、自分で
1:通常のフォント
2:太い文字
3:赤い文字
4:太くて赤い文字
とでも、意味づけし、GetItemDataでも、それぞれに処理を分けてやればいいのですね。
定数を足すというのもありかもしれませんね(!?)
if( GetItem(&lvItem) == TRUE ){
if( nCnt == 0){ //アイテムの場合
SetItemData(nItem, lf.lfWeight + pDC->GetTextColor());
}
}
テストボタン内で、試しに、
if(m_xcList.GetItemData(○行目)== (FW_BOLD + RGB(255,255,255))){
MessageBox(_T("白い太文字です"));
}
としても出来ました。
【参考元】http://dejibouzu.com/page/2/
相変わらず、参考にした大元のソース(↑)です。
じきに締め切らせていただきます。
本当にありがとうございましたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Excel(エクセル) [テーマのフォント]、[見出しのフォント]、[本文のフォント]とは何ぞや? 2 2023/02/27 09:18
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- PowerPoint(パワーポイント) PowerPointの箇条書きの既定のリストを変更する方法について 1 2022/12/15 18:41
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- その他(インターネット接続・インフラ) Webサイトのフォント・級数変更について 1 2022/10/18 18:08
- ノートパソコン Chromebookの文字フォント(デバイスの入力文字など)が直せないです 1 2022/06/21 14:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックス内の文字サイズ変更
-
C# のフォームデザイン&レイア...
-
背景色のついでに文字色もかえ...
-
VBA TEXTBOXテキストボックスの...
-
ワードで自作フォントが変更で...
-
ハングル文字を入力するには、...
-
JComboBoxのサイズ変更
-
文字色 エクリプス
-
VBAのフォント変更(エクセルか...
-
エクセルのシート名のフォント...
-
\\マークが表示されない
-
GetTextExtentPoint32での高さ
-
ActiveReport中のフォントサイ...
-
リソースエディタでスタティッ...
-
EDITBOXに関して
-
CreateWindowEx()でのフォン...
-
エディットボックスのフォント...
-
プロポーショナルフォントの文...
-
static 文字が上に張り付いて・...
-
グラフの交点の求め方(Excel)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
フォントの大きさ
-
VB.NET2005 TextBox 高さ(Heig...
-
エディットボックスのフォント...
-
コンボボックスの一部のアイテ...
-
VBA TEXTBOXテキストボックスの...
-
ドロップダウンリストのフォン...
-
VBにて指定した通りにExcelの列...
-
プロポーショナルフォントの文...
-
リソースエディタでスタティッ...
-
WPFのフォントカラー変更につい...
-
static 文字が上に張り付いて・...
-
Eclipseで修正したファイル名の...
-
チェックボックスの箱のサイズ...
-
EDITBOXに関して
-
文字色 エクリプス
-
VC++2010 ボタンなどのレイアウ...
-
Win32 APIで、テキストボックス...
-
フォントごとの文字列の幅の取得
おすすめ情報