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

解決


けーた  2006-04-26 01:02:09  No: 61413

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

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

環境:WinXP(SP2) + VC2003 + MFC


YuO  2006-04-26 01:06:39  No: 61414

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


けーた  2006-04-26 01:19:41  No: 61415

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

コントロールがのっている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 18:32:39  No: 61416

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

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


けーた  2006-04-26 19:58:29  No: 61417

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

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


YuO  2006-04-26 20:43:55  No: 61418

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


けーた  2006-04-27 01:25:47  No: 61419

レスどうもです。

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

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


けーた  2006-05-01 21:06:31  No: 61420

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

一応解決と致します。


けーた  2006-05-01 21:07:10  No: 61421

チェック忘れてた。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加