
No.2ベストアンサー
- 回答日時:
グレー表示についてはサブクラス化して独自に描くしかないでしょう。
タブを選択できなくする手法としては
TCN_SELCHANGINGメッセージを捕まえて
//HWND TabHwndとして
TCHITTESTINFO tHitTestInfo;
GetCursorPos(&tHitTestInfo.pt);
ScreenToClient(TabHwnd, &tHitTestInfo.pt);
SendMessage(TabHwnd, TCM_HITTEST, 0, (LPARAM)&tHitTestInfo);
int nIndex = HitTest(&tHitTestInfo);
if (nIndex == /*選択させたくないタブのインデックス*/)
{
return 1;
}
とかすることで可能です。
No.1
- 回答日時:
オプション等にはないと思います。
あるいはタブ選択時に強制移動させるとか。
case TCN_SELCHANGED:
{
// インデックス1→2へ移動
int n = TabCtrl_GetCurSel(hTab);
if(n == 1)
TabCtrl_SetCurSel(2);
}
return 0;
タブのグレー描画も含めてサブクラス化するのが正解かもしれませんが、面倒な場合、ラベルを上から貼ってしまうのが楽な気がします。
↓こういう感じの初期化に対して
TCITEM ti
ti.mask = TCIF_TEXT;
ti.pszText = "タブ0";
TabCtrl_InsertItem(hTab, 0, &ti);
ti.pszText = "タブ1";
TabCtrl_InsertItem(hTab, 1, &ti);
ti.pszText = "タブ2";
TabCtrl_InsertItem(hTab, 2, &ti);
↓こういったラベル用のスタティックを作っておいて
RECT rect;
TabCtrl_GetItemRect( hTab, 1, &rect );
InflateRect(&rect, -2, -2)
hStatab = CreateWindow("static", "タブ1", WS_CHILD | WS_DISABLED,
rect.left, rect.top, rect.right-rect.left,rect.bottom-rect.top, hTab, NULL, hInst, NULL) ;
// タブの無効化にときに上から隠す
ShowWindow(hStatab, SW_SHOW);
回答ありがとうございます。
直接的な(ボタンのdisable の様な)方法は無いのですね。
たまに自分の探し方が悪いのか、本当に無いのかで悩んでいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Chrome(クローム) Chromeが強制終了 1 2023/01/29 09:54
- Chrome(クローム) Chromeで複数タブを開いた状態で閉じ、再度開いた場合のタブの回復は? 2 2022/04/02 01:44
- Chrome(クローム) youtubeのサムネイルを縦4列配列にしたい。 1 2023/03/09 22:35
- Word(ワード) Wordで見出しの設定が巧く出来ません、またスタイルの一部を表示するには(office365) 1 2022/06/22 18:20
- Firefox(ファイヤーフォックス) ファイヤーフォックスのタブの復元 1 2023/06/18 23:26
- Chrome(クローム) google chrome タブ設定の質問です 1 2022/04/16 18:24
- その他(ソフトウェア) 時間差でのオートクリック 1 2023/04/12 12:04
- ノートパソコン PCの左上の同じ部分が丸くぶわんぶわんし当たってるタブだけ表示 3 2022/04/19 06:57
- Safari(サファリ) safariで複数のタブを開いています。 ios15を使用 タブを長押しで並び替えするときに つい 1 2022/07/03 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++でファイルから複数行のデー...
-
Edge スクレイピング
-
ファイルの読み込み
-
大量メールの任意のヘッダだけ...
-
シェルスクリプトによる計算
-
文字化け
-
正規表現で " ← を削除する...
-
perlのDigest::MD5;でのMD5算出...
-
MATLAB グローバル変数の宣言
-
excel 2003から VBAのreplaceマ...
-
シェル(ksh)でテキスト文書を変換
-
携帯でのカウンタ
-
携帯のWEBサイトでファイル...
-
標準入出力 パイプ
-
極めて初歩的な質問ですみません
-
flockについて
-
ファイルのアップロード
-
パーミッションについて
-
メールアドレスでメンバー認証
-
ファイル全てを .xlsm に変更し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
C言語で特定の行を抽出する方法...
-
空白文字 \\f と\\v の違いに...
-
全角と半角文字が混在している...
-
Edge スクレイピング
-
【Access2003】VBAでタブ区切り...
-
【エクセル】改行無しテキスト...
-
VBAでタブ区切りテキストの保存...
-
\\tはどんなときに使うのでしょ...
-
タブコントロールに付いて
-
Javaのコーディングスタイル
-
エクセルのデータをテキストデ...
-
タブの色を変更する方法
-
デルファイ TabControl タブの...
-
エクセル→XML 要素のコピー
-
掲示板の過去ログDLについて
-
Access2007のADOの使い方が分か...
-
AccessからExcelをタブ指定で開...
-
Excelのマクロで改行を含んだテ...
-
テキストファイル(tsv)を改行...
おすすめ情報