
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);
この回答へのお礼
お礼日時:2007/11/05 19:53
回答ありがとうございます。
直接的な(ボタンのdisable の様な)方法は無いのですね。
たまに自分の探し方が悪いのか、本当に無いのかで悩んでいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
window.open でのファイル指定方法
-
VBAでCSVファイルを途中行まで...
-
ExcelをCSV書き出す場合のシー...
-
Windowsで複数のファイルを同じ...
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
perlのgrepで要素を返す値がお...
-
drtファイルはどうしたら開...
-
ANSI Cでファイル名、ディレク...
-
does not map to shiftjis は解...
-
IEだとCGIが正しく動作しないこ...
-
.netのXmlDocumentを使ってテキ...
-
DOSコマンドで、標準出力を出力...
-
openした後、closeしないでプロ...
-
VB6.0でDB接続する際に切断時の...
-
エラー 'dir.h' : No such fi...
-
エクセルVBA コードが同じでも...
-
close()で例外が投げられる理由
-
readdir()で得られるファイル・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で特定の行を抽出する方法...
-
バッチファイルの作り方(CSV→...
-
Edge スクレイピング
-
【エクセル】改行無しテキスト...
-
空白文字 \\f と\\v の違いに...
-
全角と半角文字が混在している...
-
VBAのFileFormatで悩んでいるこ...
-
【Access2003】VBAでタブ区切り...
-
デルファイ TabControl タブの...
-
タブの色を変更する方法
-
タブコントロールに付いて
-
エクセル→XML 要素のコピー
-
VBAでタブ区切りテキストの保存...
-
htaccessで特定のディレクトリ...
-
VB6でのデータの編集(ファイル...
-
エクセルVBA コードが同じでも...
-
Windowsで複数のファイルを同じ...
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
MATLAB グローバル変数の宣言
おすすめ情報