タブコントロールのタブの位置

解決


けーた  2006-04-25 16:02:09  No: 61413  IP: 192.*.*.*

タブコントロールのタブを上ではなく
左に表示することは可能でしょうか?
VBでは簡単にできるんですが、VCだとやり方がわからないです。。。

どなたかご教授お願いします。

環境:WinXP(SP2) + VC2003 + MFC

編集 削除
YuO  2006-04-25 16:06:39  No: 61414  IP: 192.*.*.*

TCS_VERTICAL コントロールスタイルを使えばよいのでは?

編集 削除
けーた  2006-04-25 16:19:41  No: 61415  IP: 192.*.*.*

レスありがとうございます。

コントロールがのっているFormViweの
OnInitialUpdate()で以下のようにやってみましたが、変化無しでした・・・

DWORD dwExStyle = m_tbs_select.GetExtendedStyle();
m_tbs_select.SetExtendedStyle(dwExStyle | TCS_MULTILINE | TCS_VERTICAL);

MSDNを見ると、以下のように書いてありました。

TCS_VERTICAL 
Version 4.70. Tabs appear at the left side of the control, with tab text displayed vertically. This style is valid only when used with the TCS_MULTILINE style. To make tabs appear on the right side of the control, also use the TCS_RIGHT style. This style is not supported if you use ComCtl32.dll version 6.

環境がXPなので必然的にComCtl32.dllはVer6で、
なおかつマニフェストを作成してビジュアルスタイルで表示させています。

やはりこの環境下では不可能ということなのでしょうか。。。汗

編集 削除
dairygoods  2006-04-26 09:32:39  No: 61416  IP: 192.*.*.*

TCS_VERTICAL は、拡張スタイルではないようですが。
普通のスタイルは、ModifyStyle で変更します。

また、リソースエディタを使っているなら、
「垂直方向」プロパティでできませんか?

編集 削除
けーた  2006-04-26 10:58:29  No: 61417  IP: 192.*.*.*

レスありがとうございます。

縦表示  のプロパティをTrueに設定してみましたが、
変化なしでした。

編集 削除
YuO  2006-04-26 11:43:55  No: 61418  IP: 192.*.*.*

Version 6のComCtl32.dllを使う指定をしなければ,Windows XPであってもComCtl32.dll Ver. 6が使われることはないです。
どうしてもVersion 6を使いたいのであれば,標準コントロールでは処理でいないことを前提に,自分で描画するなりする必要があります。

編集 削除
けーた  2006-04-26 16:25:47  No: 61419  IP: 192.*.*.*

レスどうもです。

ビジュアルスタイルを指定しているので、
使用されるComCtl32.dllのバージョンはVer6固定だと思いますがちがうのでしょうか?Ver6を使用していなければビジュアルスタイルにはならないはずですし・・・
(ビジュアルスタイル(Windows XP スタイル)にしなければVer5が使用されますが・・・)

今回はあきらめて、COMのTabStripを使うかな・・・

編集 削除
けーた  2006-05-01 12:06:31  No: 61420  IP: 192.*.*.*

いろいろ調べた結果、できないということで

一応解決と致します。

編集 削除
けーた  2006-05-01 12:07:10  No: 61421  IP: 192.*.*.*

チェック忘れてた。

編集 削除