下記コードですが、カーソル行以外の行は色が変更されるのですが、カーソル行は変わりません。
カーソル行の色を変えたいのですが教えてください。
if ( ((LPNMHDR)lp)->code == NM_CUSTOMDRAW ) {
case NM_CUSTOMDRAW:
LPNMLVCUSTOMDRAW lplvcd;
int row;
lplvcd = (LPNMLVCUSTOMDRAW)lp;
switch (lplvcd->nmcd.dwDrawStage) {
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;
case CDDS_ITEMPREPAINT:
row = lplvcd->nmcd.dwItemSpec;
if (ListView_GetItemState(hList, row, LVIS_SELECTED)) {
lplvcd->dwItemType = LVCDI_GROUP;
lplvcd->clrTextBk = RGB(0, 0, 255);
lplvcd->clrText = RGB(255, 255, 255);
return CDRF_NEWFONT;
}
break;
default :
break;
}
break;
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>カーソル行は変わりません。
選択行…ですか?
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vcln …
ところで…
>if (ListView_GetItemState(hList, row, LVIS_SELECTED))
が偽だった場合にreturn無しでいいんですかね?
回答ありがとうございます。
ご提示のURLはMFCでした、私にはMFCは解りません。
>>if (ListView_GetItemState(hList, row, LVIS_SELECTED))
>が偽だった場合にreturn無しでいいんですかね?
これは
}
break;
がありますが、これとは別にreturnは何処にいれるのでしょうか、
教えてください。
No.2
- 回答日時:
MFCかどうか…ってことではなく……
『確か、選択色はカスタムドロウでは変更できないと言う話だったような。』という部分が。
# ただし、私自身は確認していない。
ここしばらくWin32API触っていないし。
# むか~しのソース見たらListView_SetBkColor()とListView_SetTextBkColor()でいぢっているものがあるなぁ…
>がありますが、これとは別にreturnは何処にいれるのでしょうか、
if文の後にelseでreturnを…でしょうか。
CDRF_NEWFONTかCDRF_NOTIFYSUBITEMDRAWを返却するようですが。
# breakで抜けるだけだと、おそらくはDefWindowProc()で処理されるでしょうけども。
ありがとうございます。
>ListView_SetBkColor()とListView_SetTextBkColor()・・・
はマクロでしょうか?
この線で攻めてみます。
偽については、お行儀よくreturnで抜けます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Win32APIにて、ウィンドウ全体...
-
音量調節
-
C++のcase文の書き方
-
Win32APIでウィンドウを中央に...
-
トラックのループの仕方
-
LoadImageとSetCursorについて
-
C言語のfor文です。 繰り返しの...
-
2÷3などの余りについて
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
*をユーザーが入力した数字の数...
-
fgetsなどのときのstdinのバッ...
-
C言語で%を使わない余りの出し方
-
C言語
-
プログラムでの数字につく”f”の...
-
break文でループを一気に抜ける...
-
マイナスからプラスへ転じた時...
-
#define _CRT_SECURE_NO_WARNIN...
-
既定のコンストラクタがありま...
-
ある商品のロス率を5%見込み、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エディットボックスの背景の色...
-
ダイアログプログラムでEnterキ...
-
C言語win32api、エディットボッ...
-
音量調節
-
エディットコントロール入力時...
-
プログラミングでエラーが出ま...
-
エラー Run-Time Check Failur...
-
キャレットの現在位置の表示 (W...
-
LoadImageとSetCursorについて
-
コンソールアプリケーションの...
-
画像を表示したいのですが……
-
ボタンの色(WINAPI)
-
COMPORTマルチスレッドで例外発生
-
C++のcase文の書き方
-
Win32APIでウィンドウを中央に...
-
PeekMessageについて
-
CTreeCtrlのCreate関数でエラー...
-
オーバーレイみたいな処理がしたい
-
この列挙体でsysjanの関数はあ...
-
DirectInputについて再
おすすめ情報