TabCtrlでMultilineを有効にするには? – プログラミング – Home

通知
すべてクリア

[解決済] TabCtrlでMultilineを有効にするには?


こう
 こう
(@こう)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

環境
OS:WIN2000
VC++.NET

TabCtrlでMultilineを有効にしようとTrueにするとエラーになってしまいます。
止まってしまうポイントを以下に示します。

void CTabCtrl::DrawItem(LPDRAWITEMSTRUCT)
{
ASSERT(FALSE); // must override for self draw tab controls
}

これはどうすれば解決できるのでしょうか。
ご教授お願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

そのコメント:must override for self draw tab controls
に従えばいいんじゃないですか?


返信引用
こう
 こう
(@こう)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

>επιστημη さん
返信ありがとうございます。
must override for self draw tab controlsは
どういう意味なのでしょうか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> どういう意味なのでしょうか。
そのままの意味なのでは?英和辞典で調べてみましたか?
(中学生レベルの英文だと思うけど。(私でもわかるのでw))

> TabCtrlでMultilineを有効
にするには、CTabCtrlを派生したクラスを作成し、DrawItemをオーバーライドしなけれ
ばならないということです。
(オーバーライドがわからない場合、MFCを使う以前にC++の入門書を読んでください)

ちなみに、DrawItemを実装するのは結構面倒で、描画の概念がわかっていないと大変だ
と思います。(ペンをセットしたり、ブラシをセットしたり等)


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

「和訳しろ」と仰る?

タブコントロールを自前で描画するべくオーバライドすべし だそうです。


返信引用
r
 r
(@r)
ゲスト
結合: 22年前
投稿: 48
 

これは VC++.net/ VC++.net 2003 のバグです。
Multiline を True にすると Owner Draw Fixed になってしまう。
タブに関しては「プロパティ」での設定はぐちゃぐちゃです。

.rc ファイルをテキストエディタで開いて TCS_OWNERDRAWFIXED に
なってしまっているところをTCS_MULTILINE に書き換えれば
マルチラインになると思います。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>これは VC++.net/ VC++.net 2003 のバグです。
なんか怪しいと思ったらそういうことなんですね。

VC++6.0では、
プロパティ→スタイル→複数行
にしただけではこの状態にはならなかったです。

勝手に、TCS_OWNERDRAWFIXED もついてくるかと思った罠。


返信引用
こう
 こう
(@こう)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

>Blueさん
返信ありがとうございます。
オーバーライドの意味がわからなかったので調べました。
ご忠告ありがとうございます。

>επιστημηさん
返信ありがとうございます。
訳はなんとかわかったのですが、
どうすればいいのかがわかりませんでした。
ありがとうございます。

>rさん
返信ありがとうございます。
バグだとは知りませんでした。
いつもいじってはいけないnファイルと思っていましたが、
こういうバグの場合は書き換えても大丈夫なんですね。
初めて.reのファイルの中をいじりました。
ありがとうございます。

敬具


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました