早くサポートしてください。 VSにつけてください。 ナムナム
ほんとに優しい人がいた!!
ありがとう!!
>>4-6 6は自分だけど。
でも今からWindows GUIプログラミングの勉強するなら .NET Frameworkの方がいいと思うぞ。System.Windows.Forms。 WTLっつっても結局、拡張を続けてカオス状態になっている Win32APIをむりやり押さえ込んだラッパークラスでしかないわけだし、 WTLでちょっと凝ったことやろうとすると結局、Win32APIを直接いじらないといけない。 出来上がったソースコード見てもいかにもハリボテといった感じで 美しいとは思えん。 メッセージループに振り回されることなく、ロジックの本質的な 部分に集中できる方がいいと思うぞ。
COM使えるようにならなきゃ
WTLの概要: なんとなくきれい(見た目もコードも)。 サイズ小さめ。 実行速度早目。 コンパイル速度遅目。 ドキュメントが無い。
>>8 MFCに比べれば美しいでしょ。
なんか輝いて見えるよ。
このスレも放置されるんだろか。 不安になってきた。 C#勉強した方がいいかなぁ・・・
>>16 そんな厨房みたいな排他的なこと言うなよ。
やりたきゃ両方やれ。
C#(というか.NETのライブラリ)いいよねえ。まるでJavaみたい(ウッ WTLはあれだ、MFC使うくらいならWTL使えと。 なんて言いながらMFCろくに触ったこと無い俺。 # この後、「18は何も分かっていない。そもそも〜」と蘊蓄を垂れる人希望。
ほんとはC#やろうと思ったんだけど、日本語の入力とか調べていて やめよっかなーとか思って、WTLみつけました。
>>20 使い方です。
とりあえず、ウインドウに文字だけ書いてみました。
なんか楽しかったです。
MFCだと、いやな気持ちになるんだけど。
>>18 MFCもWTLもそこそこ触ってる俺から言うと、その程度でいいと思うよ。
何もWTLが最強だとか言うつもりはさらさらない。
Win32APIだけでウィンドウ作るならWTLの方が楽だし、
MFCよりもシンプルでいいなー程度。
>>14 のサイトすごい!
関係ないけど、C#はコンパイルが速くていいなーって思いました。
起動も速い。
>>23 「WTLなんてクソ、MFCサイコーだぜ。なぜなら〜」という語りを期待してたんだけどね。
俺は昔MFC挫折して、最近WTLでプログラム書いてる。
本当はC#で.NET使いたいんだけど、普及率とやはり動作がもたつくのが原因で
全てには適用出来ないなと判断してる。
今のところ、C#(というより.NET Framework)と比較したときのWTLの利点って
・COMの利用が簡単
・実行速度の速さ、使用メモリの少なさ
この辺りか?
逆に欠点は
・体系立てられたドキュメントが存在しない
・設計が.NET Frameworkほど洗練されていない
こんな感じだな
>>23 そうそう、Better MFCとして、Win32APIがある程度分かってる人が
楽するために使う、というのが正しいと思う
CodeProject出した者だけど、
>>14 のサイトは俺もイイ!と思った
すべてのサンプルにスクリーンショットがあるので分かりやすいし、
何よりWTLでこんなこともできたのか!っていうサンプルがたくさんある。
(Ballon Dialogとか)
俺の中ではWTLはWin32用で今すぐ使えるもので、 .NET Frameworkは今は普及に問題はあるが数年後WinFXの時のために習得しておくものだと思ってる。 要はWindowsプログラミングに限って言えば、 両方覚えて、今はWTLでC++、Longhornが普及する頃はC#を使えばいいだけだと思う。 (もちろん他のライブラリなり言語なり使ってもいいわけだし。) どれかに限定しようとしなくたっていいんだよ。
んで、結局
>>1 =
>>22 は今すぐ質問したいことがあるわけじゃなかったのか
>>31 何か目標(こういうソフトが作りたい)を作って、それを完成させる
ために必要なことを学習していくっていう方法をとるといいと思う。これだと
モチベーションもキープできるし。
そのとき、最初から難しすぎる目標を立てないで、段階を踏んで
ステップアップしていくようにするのがポイント。
>最初から難しすぎる目標を立てないで 耳が痛くなってきた。
昔、MFCを使ってたんだけど、ATLでCOMを書くようになってから、EXEを書くときにWTLを 使うようになった。軽くてシンプルでいいよね。 MSが正式サポートしてくれると良いんだけど。 もちろん、.NETも並行してつかってる。
>>19 少なくともそのスレよりはレス数がある(w
>>14 そこにあるWTLのドキュメントがなかなか良いね。
日本のYahooGroupにはWTLグループが無いのに検索するといつも上位にあるよな
>>36 スレ立て日が一年前の同じ日!
別にまねしたわけでもないのに同じスレ名!
誰かMMR呼んでよ!!
わざとだろ絶対。
それがわざとじゃないんですよ。 ぐぐるって掲示板とかだと書いた直後に検索できたりするでしょ。 それでヒットするかな?って検索して見たらヒットしてて、 見てみたら違うページだったわけ。 それが過去ログのページ。 ほんと驚いた。 なんか呪いかかってるかも。
44 :
デフォルトの名無しさん :04/03/02 23:56
WTL 使う前に C# ちょっと触ってて、当時 Rebar を使いたかった んだけど、C# で簡単に実現する方法がないっぽくて WTL に決めた。 結局 C# を使おうと思っても、Windows の本質的なところをわかって いなかった俺は、うわべだけわかった気になるのが嫌できちんと Windows を勉強したいと思った。 で、独自のクラスライブラリを作ろうかと思ってたときに出会ったのが WTL。マジ感動した。
45 :
デフォルトの名無しさん :04/03/02 23:58
で、質問ってなによ?
ドキュメント無いですよね。 みんなのためにドキュメント作ってあげようって言う優しい勇者はいないかなぁ。
49 :
デフォルトの名無しさん :04/03/03 00:09
>>46 ・・・漠然としすぎていて答えられないって
サンプルいじってみたら?
個人個人が作成したドキュメントやノウハウの類をどこかに集積整理できないものかなぁ。
WTL のドキュメントの計画は Code Project にもあったよね。
あったあった。
なんでこのスレこんなに盛況なの?w #俺も使ってるけどね。WTL
ドキュメントの類は既出のサイトでとりあえず十分じゃない? 数も少ないし巡回するのも苦じゃないと思う。 まぁ日本語のドキュメントがもっと多くなれば良いとは思うけど。 あとリファレンスがあればいいかな。 どっかの外人がWTL3.1のリファレンスを公開してたけど、 7.0以降は見かけないなぁ。
>>58 同意
無いのにページが出るのがなんとも・・・。
広告出したいからなのかな・・・
>>55 リファレンスってどの辺の?
全部をだらだらっと書いたものって欲しい?
>>60 MSDNみたいなの。いちいちソース見るのめんどくさいから。
62 :
デフォルトの名無しさん :04/03/03 00:30
ただでさえ少ない住人にどれだけ有志がいるか・・・ ま、やるならCWinDataExchange<T>(atlddx.h)だけ俺がやってもいいよ。
>>62 なんか協力を求めているようだけど(viksoe)
問題は英語で協力できるか、ってことと日本語のドキュメントが
欲しいんだけどってニーズにこたえられるかってあたりがネック?
>>64 なぜ DDX(w
ヘルプで知りたいのは各メソッドとかなの?
MFC(SDK) とかと大して変わらない気がするが・・・
クラス図とかがあればわかりやすいか?
>>65 というか中身を見た感じ作りかけ。
これなら最初から日本語版作った方が良さげ。
SourceForge とか使ってやる?
>>66 MFCとほとんど同じならMFCのリファレンスでもいいし、
SDKのリファレンスでもいいんだけど、
結局MFC(日本語ドキュメント)とSDK(ほとんど英語のままドキュメント)を行ったり来たりしなきゃならないし、
加えてWTL特有のクラスはソースを見ながら・・・
ってことが多いからいっそ一つにまとめたWTLリファレンスがあればいいなと思ったの。
>>69 ま、確かにインテリセンスが効かなくて確認しなきゃ無いときは
正直面倒だが。
本当にやるならロリポくらいなら借りてくるよ。 wikiとか設置してもいいんだけど、作ったデータを再利用しやすくできる方法ないかな? XMLで保存できるとか。
72 :
デフォルトの名無しさん :04/03/03 01:48
DECLARE_FRAME_WND_CLASS_EX(0,0,0,0)
>>73 作ったのか。俺も以前作ろうと思ったけど、FreeMLの状態を見ると寂しいことになりそうだからやめた。
まぁ、自分のメモを貯めていくつもりでがんばります。
76 :
デフォルトの名無しさん :04/03/03 02:31
おー気合入ってるなぁ。 年度末で忙しいからアレだけど、時間を見つけて参加するよ。
久々にFreeML見たら今年に入って書き込み二件か・・・
よしやるか
>>71 Wiki はわかるけど「ロリポ」ってなに?
・・・ってぐぐったらわかった。
そこ借りて立てるならそれもいいなぁ。
で、暫定的な目標をどうするかってことになると思うんだけど・・・
・HTML ヘルプにして VS.NET から呼び出せる形式
・当然フリー
・日本語ヘルプ
・クラス図付き追加してほしい内容はどっかのスレに書き込む
・年内完成目標(控えめに)
こんな感じ?
(個人的な希望を挙げてみたので皆さんのご希望も)
とりあえず、参加できると思うので声かけて下さい。
66でよろしく(w
79 :
デフォルトの名無しさん :04/03/03 02:35
あれ、ちょっと変だった 誤)・クラス図付き追加してほしい内容はどっかのスレに書き込む 正)・クラス図付き (追加してほしい内容はどっかのスレに書き込む)
参加してみて気が付いたこと。 ブックマークだけど、これまでこのスレで出たサイトはどれも定番だし数少ないものだから全部載せては? あとマナーとしてブックマークはサイトのトップにした方がいいような気がする。
質問 Donut*とかみたいにSimpleReBarを細くしたいのですが どうすればいいのでしょうか? TB_SETBITMAPSIZEとかTB_SETBUTTONSIZE送っても きれいに細くなりません。
ソース配布されてるんだから見れば・・・
ブックマークは誰でも修正できるので、よろしくお願いします。
そんなんじゃ2chのスレすらまともに立てられないぞ。
せめて
>>1 のテンプレと
>>2-6 の過去ログ&参考サイトを書くくらいの勢いがないとな!
早くも盛り上がってないな
87 :
デフォルトの名無しさん :04/03/03 22:28
世界貿易図書館
73=71? つか Yahoo Group に入るの面倒くさい
wiki使え
YahooGroupのメッセージは公開しないのか。
公開ってどういうことですか?
とりあえずwiki用意しました。
WEBからメンバー以外もログを見られるようにすること<公開
とりあえずヘルプ見てみます。
はりきるのは良いが初心者じゃないだろうな。
初心者です。
とりあえず見られるようにしました。
だめだこりゃ
いかにもグループ作ってみたかった、wikiやってみたかった、スレ立ててみたかったって感じだもんなぁ。
wikiどこ?
Doxygen を公開してどういう方向に持って行きたいのさ?
103 :
デフォルトの名無しさん :04/03/04 21:53
MSはWTLを何のために作ったのでしょう? 誰かが洒落で作ったものを公開したとか。
元々はATLのサンプルコードだったはず
106 :
デフォルトの名無しさん :04/03/04 22:27
UNICODEビルドをするとコンパイルエラーになるものがあるよね。
CodeProject重すぎ!! リニューアルしたCodeGuruがんばれ!!
>>102 俺も疑問。誰でも作れる自動生成したものをアプしたり、
それの構成ファイルをアプして何を期待してるんだろうか。
さらにアプしただけで何のアナウンスもないし。
場所だけ提供して後は皆よろしく的な他力本願では先は見えてしまう。
正直 Doxygen は好きじゃない。 そもそもこのスレの流れでは MSDN 的なヘルプが欲しいように 思えたんだが、違うのだろうか? Doxygen だったらそれぞれが勝手にやれるだろうに。
そして誰も書き込まなくなった・・・
111 :
デフォルトの名無しさん :04/03/05 05:40
属性付きプログラミングでもWTLを使える方法を編み出したよ
WTLには3,4年前凝ったことがあったが、正直 M S が や る 気 無 い の に つ き 合 っ て も 無 駄
114 :
デフォルトの名無しさん :04/03/05 12:51
でも、ATLに触れてしまうといまさらMFCに戻りたくなくなる・・・・
未だにwin32API直叩きですが、何か?
グループ、未だに誰も(オーナーすら)書き込んで無いな。
117 :
デフォルトの名無しさん :04/03/05 13:57
YAHOOでやる時点で・・・。
boostもYahooじゃなかったか。
なんかおわったっぽいね? 立て逃げか・・・
別になるだろ。 >View はまだ作っていませんが、ここでは便宜上デフォルト >の S2H_ConvView を使います。全部で3つの View が必要 >なので、MainFrm.h に3つの View を定義します。 >名前もわかりやすいようにつけてみました。 って書いてあるから、それぞれの View を実装するクラスを作る までは、デフォルトで作られた S2H_ConvView を使うってことでしょ? 最後に、 >次回はフォルダの内容を表示する CFolderView を作成したいと思います。 って書いてあるし。
別になるだろ。 >View はまだ作っていませんが、ここでは便宜上デフォルト >の S2H_ConvView を使います。全部で3つの View が必要 >なので、MainFrm.h に3つの View を定義します。 >名前もわかりやすいようにつけてみました。 って書いてあるから、それぞれの View を実装するクラスを作る までは、デフォルトで作られた S2H_ConvView を使うってことでしょ? 最後に、 >次回はフォルダの内容を表示する CFolderView を作成したいと思います。 って書いてあるし。
ごめん2回書いちゃった
>>122 >それぞれの View を実装するクラスを作る までは、デフォルトで作られた
>S2H_ConvView を使うってことでしょ?
こういう意味だったんですね。疑問が解けました。
これでやっと入り口の部分が突破できました。ありがとうございました。
: public CWindowImpl<CTextView, CRichEditCtrl> なウインドウにて、EN_SELCHANGEを取得したいのですが、 ・OnCreate()で long mask = GetEventMask(); mask |= ENM_SELCHANGE; SetEventMask(mask); あとは、 NOTIFY_CODE_HANDLER(EN_SELCHANGE, OnSelChange) で、いけると思ったのが、イケてませんでした。 mfcだと OnSelChange()とうvirtualなメソッドがあるようですが、 wtlだとどうやるのでしょうか。
CRichEditCtrlを使うときはリッチエディット用DLLをロードする
大丈夫なようです。 HMODULE hInstRich = ::LoadLibrary(CRichEditCtrl::GetLibraryName());
クラスリファレンスに必要な項目って何ですか?
・クラスの概要 ・メンバ関数/変数一覧、およびそれらの用途/動作の説明 ・メンバ関数の引数の説明もあったら言うことなし
レベル低いな・・・ WTL の前にやることがあるんじゃないのか?
MSDNの形式を踏襲することはできないんじゃないかな?
形式ってなんだよ。リファレンスに必要な項目はMSDNを参考にすりゃ聞くまでもないだろって話だ。
解説 必要条件 例 参照 ですか? これあまりよくないんじゃないかなぁ?
138 :
デフォルトの名無しさん :04/03/07 06:47
まぁまぁ、そう言わずに書いてみてくださいよ
139 :
デフォルトの名無しさん :04/03/07 08:47
T* pT = static_cast<T*>(this);
>>133 読んだことはあるが正直テンプレートクラスの書き方はワケワカラン
>>140 じゃあ、ATL とか WTL 使えないだろ
>>137 ソースじゃなくて項目の話だろーが。
トップにクラスの解説なり書いてその下にメンバ関数のリファレンスだ。
メンバのリファレンスは戻り値や引数の説明など。
つーかMSDNだよ。
「wikiを立ち上げました。何かプランがあればお知らせください」って 普通はプランを考えてから立ち上げるんじゃないのか・・・
>>137 自分の調べた範囲をメモしていけばいいと思いますよ。
よく、「テンプレートなんだからヘッダ読めばいいだけ」って言う人がいるけど、
ヘッダから作者の意図を汲み取るのってすごく難しいことのような気がします。
また、ひとつのことをやるのにも複数の方法があるわけで、
メモしてあることに対しての意見とかも追記していけばいいんじゃないでしょうか。
こういうのは言い出しっぺが自ら進めないと寂しいことになる。
ああ、wikiでやりたいのはこういうことね。なるほど。 書式って言うか書き方はMSDNを踏襲した感じでいいのかな
個人的にはMSDNって使いやすいと思えないんです。 素人が翻訳したはずのmanpageとかの方がずっとわかりやすくて、 それで、書式をちょっと迷っています。
このwikiはPHPで書かれているので、ローカルで一括して内容を修正とかが 難しいんですよ。 それで、出来れば最初に書式を決めちゃいたいです。
151 :
デフォルトの名無しさん :04/03/07 22:25
とりあえず、雛型をつくるとこから始めないとダメみたいね。
修正が困難というのは、wiki上に戻すのが難しいだけで、 wikiから取り出してほかの形式に変更するのは簡単です。 rootを持っていれば戻すのも簡単なんですけど、 残念ながら持ってません。
>>149 つか MSDN であまり困らないんだけど(ヘルプの形式)
どの辺がわかりづらいわけ?
それがどうも理解できないんだけど
ヤフーのほうに物質投下。ほぼMSDNの劣化コピペだけど なんかに使ってくださいな。
>>155 ありがとう!
大切に使わせていただきます。
リファレンスなんてどれも同じような形式(引数、戻り値の説明、関数の使い方など)なのに 何を迷う必要があるんだ? このスレではたまたまWTLはATLの拡張だからMSDNを例に出しただけで、 何もMSDNのデザインや構成、DHTMLなんて真似しろなど一言も言って無いぞ。
何暗号って。
>>157 この形式がずっと使われることになりそうなので、
案があれば出してくださいって言う程度の意味にとってください。
いっそ項目だけXMLで作っちゃって後でXSLTでレイアウトを好きなようにするとか。 でもwikiじゃ無理か。
>>161 それが悩みの種
コメント行で構成がわかるようにしておけば変換できるけど
単純でいい方法ないかな?
これ1ページでクラスの概要もメンバの一覧もメンバの詳細も書くことになってるけど メンバは別にした方が良くないか。
>>155 これwikiにこぴぺしていいですか?
>>163 そうすることの利点と欠点を教えてください。
>>163 wikiでページを分けると、後で変換するときのために何かの工夫が必要なんですけど、
そこらへんのアイデアないですか?
DWが重いです。
ヘルプはそのサイトでいいんじゃない?
そのサイトでで充分ですね。
174 :
デフォルトの名無しさん :04/03/08 21:39
でで
結局Yahooグループは何のために使うんだ・・・
アップローだ める
アプならwikiでもしてるし連絡ならここでもしてるしなぁ
>>178 サンクがだめになったら、ソート済みベクタか、ハッシュマップを使って
ウィンドウの検索を行うのかな…
ATL は MS 謹製なのだから、何らかの回避手段があるのではないかと予想
その予想は、外れてる・・・
C#なんですが、適当にC++のコードを書いてみたら普通にコンパイルできて実行できました。 簡単に乗り換え出来そうですね。
>>182 C#->C++?
C++->C#
どっちからどう乗り換えるんだ?
C#->C++の場合なんちゃって乗り換えで・・・
てか、WTLと関係あり?
184 :
デフォルトの名無しさん :04/03/09 13:51
C++→C#
C#ってむしろJavaに近い印象だが違うのか?
187 :
デフォルトの名無しさん :04/03/09 14:28
うそみたいだけど本とです。 C++のコード書いてコンパイルできますし・・・
188 :
デフォルトの名無しさん :04/03/09 14:29
ポインタ使えますし・・・・
189 :
デフォルトの名無しさん :04/03/09 14:30
フォーム便利ですし・・・
で、ここが何のスレかわかってる?
191 :
デフォルトの名無しさん :04/03/09 14:33
何のスレですか?
スレ違いにバカみたいにいちいち反応すんな。放置しとけよ。
>>190 がばかっていいたいの?
いい人だと思うんですけど?
194 :
デフォルトの名無しさん :04/03/09 14:42
春〜Spring〜♪
196 :
デフォルトの名無しさん :04/03/09 15:36
昔のスレが落ちた日までもう少し…
なんだ WTL を managed C++ で使った話なのかと思ったのに、ただの春か。
199 :
デフォルトの名無しさん :04/03/10 10:13
>>179 ええ!今までVirtualProtectで実行属性にしてないコードも実行できてたの?
ガクガクブルブル
C#でWTL使えるかとおもってきたいしていしまったよ。
201 :
デフォルトの名無しさん :04/03/11 12:13
その話まだ続けるのかよ
ヘルプとか作らなくてもCodeProjectで十分な気がしてきた
つーかこのスレでヘルプヘルプって言ってるけど リファレンスとチュートリアルとTips的なものごっちゃにしてないか。 あくまでも要求はリファレンスで、その他は既出のサイトで十分という結論になってる。
はぁ・・・もう飽きたのか・・・
短い処理を描くために自分が使っているマクロ。 #define MESSAGE_LAMBDA(msg, lambda) \ if (uMsg == msg) \ { \ lResult = 0; \ lambda; \ return TRUE; \ }
短い処理を描くために自分が使っているマクロ。 #define QUERY_SUMMATION_OF_TWO(a, b) (a+b)
>>207 は、
>>206 を QUERY_SUMMATION_OF_TWO() と同じようにくだらないマクロだとみなしたのでは。
んでwikiとYahooGroupは早くも放置ですか。 ほんと、他力本願な奴が言い出しっぺだと悲惨だよなー
なんで粘着して煽ってるのですか?
僕も不思議に思ってた。
本家のグループにもメッセージあるね。
>>211 WTLの本でも出そうかと画策している出版社の社員とか(w
むしろその方がいいし。本出してくれ。
219 :
デフォルトの名無しさん :04/03/13 00:58
>>210 まあ、わかっていたことだから(w
書く時間をプログラムに使ったほうが有意義のようきがするけどね。
所詮学生の暇つぶしか
あ〜あ、周りを巻き込んでおいて結局これかよ。
>>3 >>7 こういう姿勢の奴になんかやってくれることを期待する方が無理だろ
続けるか辞めるか
>>1 は選択を迫られたな。
つーかwikiの方に書いてくれた人の好意を無駄にするのは酷いな
最低
>>73 >明日になったらブックマークが充実しているといいなぁ。
必要なものってなんなんだ? WTL使っているような人間は、分からなくても自己解決できるような奴らだろ? MFCのドキュメントで代用したり、ヘッダ読んだり。 個人的には、クラスリファレンスよりも、 Tips、拡張、サイドパーティのライブラリなんかがまとまっていると嬉しいんだが。
確かに
>>1 (こういち君?)の姿勢を見てると
>>100 の通りに思えてきた…
質問したいからスレ立たと言うが具体的な質問はしていないし、
Yahooグループ作っても作った本人すらろくに投稿してないし、
Wiki立てても「何かプランがあればお知らせください」だし。
リアル中高生なのかどうか知らんけど、自分でいろいろ用意した割にその使い方や進行が下手すぎだろう。
>>222 必要なものなんて無い。あったら便利だってだけだ。
>>222 >Tips、拡張、サイドパーティのライブラリなんかがまとまっていると嬉しいんだが。
このスレで出たURLをブックマークすりゃほぼ完成。
>>1 よ、Yahooグループで何をやればいいのかわからないなら俺が仕事を与えてやろう。
本家グループの翻訳を流してくれ。
つーかこんなこーいちたんは本当にWTLを使えているのだろうか
使えてないです。
>>222 バグがなく、商用でもフリーで使用可能なライセンスのライブラリ
でもみんな何使ってるんだろうね? やっぱ、MFCが一番多いの?それとも直書き?
MFC
本家の人に日本のヤフーグループ見られたらちょっと恥ずかしい・・・
233 :
デフォルトの名無しさん :04/03/13 17:37
多いのはMFCだろうね。 おれはATL/WTLが最近のお気に入りだけど。
ATL/WTLのどこがいいの?
だめじゃんw
ライブラリの管理が楽なところか?
フレームワークを強制されないところ。
シンプルなところだろ。
MFCではないところ。
COMのカスタムインターフェースの実装が楽にできるところ
C++使いって、ネジ・クギは良いものを欲しがるけど、フレームワークを乗っ取られるの嫌がるよね。 一方、Java使いは、その対極のように思う。 ……雑談でした。
WTLの雑談ならまだしも「〜使い」の話って思いっきりマ板向けだろ
粘着が一人居座ってる。
CScrollWindowImplの使い方がわからないです。 どこから調べていけば良いですか?
試行錯誤してみました。 マウスホイールが普通に使えるけど、 オートスクロールが使えないです。 やったことある人いますか?
これほど
>>1 (と
>>1 が作ったもの)を放置するスレも珍しいな
1ですが何か?
256!
65536!
258 :
デフォルトの名無しさん :04/03/18 13:18
WTLの勉強がしたいです。 どんな人に聞いてどんな本を読めばいいですか? よろしくお願いします。
>どんな人に聞いてどんな本を読めばいいですか? そういうことを自分で調べられない人にはWTLはお勧めしない。 そういう人はMFCの方がいい。
自分で調べられない人にはMFCだってお勧めしない。
こうなったら意地でもグループに投稿しないぞ
入ってる10人は何をやってるんだ?
まったく動き出さないな……。 とりあえず、逆引きサンプルリストでも調べてみるか。 「ドッキングウィンドウを組み込みたい場合は……」 「グリッドコントロールが欲しい場合は……」 みたいな。
自分で調べられない人には学校の先生にでもなって下さい。
wikiも書く場所だけは増えるが内容が無いな・・・
微妙にグループの参加者減ってるね
グループに入っている人は、文書を必要としていないみたいです。 投下された文書を読めばわかるけど、 いわゆるプロの人たちなので、自分がほしいものを作るというよりは、 みんなのために何かしようって言うスタンスみたいですから。 メールのやり取りはしていますよ。
>>258 残念ながら、公式な文書といえるものは無いです。
WTLチームのメンバが書いた文書が3個だけあります。
あとは、ヤフーグループで聞くしかありません。
使い方を学ぶには、まず、まねてみるところから始めると早いようです。
WTLは、全体的にAPIの薄いラッパーになっている部分とMFCと同じように
使えることを意図した部分に大別できるようです。
メッセージのハンドリングについてはATLの説明が役に立ちます。
>>258 まだ活動し始めてはいないのですが、日本のヤフーグループの方へも、
気軽に投稿してみて下さい。
メンバーはわりとWTLを使い込んでいる人が多いようなので、
運がよければ、回答が期待できますよ。
さむっ
thunking?について詳しく教えてください知りたいです あの奇怪なデータはなんですか
びくそえマンセー
つか日本の恥だからグループ閉鎖してくれよ。
おまいが閉鎖しれ
このスレよく読むと、ぜんぜんWTL使ってない人のほうが多いらしい。 たぶん3人しか使ってないな。 寝言のほうが多い。
このスレもグループもwikiもすべて予想通りになった。
ばか、これからだよ。
おまえ、あせりすぎ。
現状を見て少しは焦れよ
282 :
デフォルトの名無しさん :04/03/23 03:13
このスレはヘタレばっかりだな。 おれは去年、WTL使ったプログラムを納品したもんね。
そんなマ板向けレスを自慢げにされても…っていう雰囲気がスレに漂った。
それ言うためだけに上げたのかよ?
終わった。
その話題はATLスレで既出じゃなかったっけ
終わったんだよ。
またMSがATLを変更するな
ATLが消滅するんじゃない?
少なくともLonghornでWinFXが普及するまではサポートするだろ
つーかプロセッサ側もまだ対応してるのが少ないから、 SP2が出たとたんにATLが動かなくなるわけじゃないんだけどな。
消滅しろよw
294 :
デフォルトの名無しさん :04/03/23 03:44
お前、責任もって翻訳しろよ。 出来ないなら上げるな。
ワロタ。何の責任だよ
つぶれるまで粘着するからな。
>>255 は、しゃれだったんだが。
誰も気がつかないとは、馬鹿しかいないのかここは?
恥ずかしいやつしかいないということで、 終了。
念のため言っとくけど、code projectより作業が進行してるんだぞ? どこが恥ずかしいんだ?
おまえもうイラネ。心底ウンザリ。
仕事で使ってたのなら、よくわかってると思うのでなんか書いてください。 一応、お勉強スレッドなので。
はじめてきました。 最近WTLを知ったばかりなのですがもう終わりなんていわないでください。
>>306 その「○○してください」っていい加減やめてくれ。
>>307 俺も最近始めたばっかりなんだよね。
もう何使ったらいいのかワカンネ。
WTLに触れた雑誌ってあるのかな。
313 :
デフォルトの名無しさん :04/03/24 01:07
そんなクマーーーーーーーーーーーーーーー(AAry
C#いいですね。
C#にはまりそうです。
なるほど、煽ろうと思って書き込んだものの、age忘れたので再度書き込んだというわけだね。
いや、真の目的はあげること。
真の目的は何のためにあげたのかだ。
煽るために決まってる。
char***************************************************************& p = 0;
このスレは
>>1 のような使えない奴が立てたので改めて煽るまでもなく雑談スレだ。
>>325 の煽り方はワンパターンだということに気づいた
ぶっちゃけこのスレにはWTL自体の話がほとんどないな
つーか
>>1 はYahooグループもWikiも放置してどこ行った。
煽ってるのが
>>1 だよ。このスレで叩かれて悔しかったらしい。
糞な
>>1 が立てたスレでも
>>1 が去った後に有効利用されることがある。
俺はそんなスレをいくつも見てきた・・・
死滅スレから来てる。 常識。
MFCやATL、WTLなどのネイティブC++ライブラリはLonghornまでの繋ぎなんだから そんなに焦らなくても数年後に下火になるのに。 まったりできない奴はイラネ。
自分でスレ立てといて自分で煽ってって
>>1 の頭は大丈夫か?
341 :
デフォルトの名無しさん :04/03/24 23:54
もうさ、どうしようもなくつまらんこと書くのやめないか。 面白いと思って書いてる奴は自分のセンスを疑った方が良い。
オマエモナって久々に見た
叩かれるとわかってこのスレに居座り、
グループやwikiを中途半端に放置して醜態を晒して、
>>1 はマゾなん?
本名こういちだっけ
>1は本当は日本のWTLユーザーとして有名になりたかったんだろうな…
マゾな
>>1 こと、マゾこういちたんとして有名にしてあげよう
こういちだけに高一の男子。 なんちゃって!
結局、WTLを使おうと思っている奴は殆どの問題を自力で解決できる。 だからこのスレに書き込む事なんて何も無い。
というか本当に教えて欲しいときはATLスレに書きます
こういちたんは現在Yahooチャットの「マ板 prog 1070269501」ルームでチャットしてますね
koichi_vv: ほかが、お金を追ってるのに、MSは時代を作ろうとしてるようなきがします
こういちがMSを賛辞して一斉にツッコミが入ってる状態だな・・・
突っ込み入ってないですけど?
WTL使ってる人っていないんですか?
心底あきれた。
まぁまぁ、そういわずに・・・
ここまでDQNだとはなぁ
>>352 使おうと思っても、使い方がわからないのですよ。
どういう風に使い始めたのか教えてほしいです。
教えて君イラネ。そんなにC#が気に入ったなら失せろ。
まだ高校生くらいか?それならまだ許せる。
>>362 ソースやCodeProjectを読む。
でもそれすらできないんだろ?
もう向いてないからやめた方が良いよ。
あとWTL理解できない人間がWTLのYahooグループを管理するのもアホらしいから閉鎖した方がいいかも。
>>362 MFCを窓から投げ捨てたらWTLかSDKしか残らんだろう。
ATLはMSDNに資料(日本語)があるしサンプルもある。
WTLはMFCのヘルプを参考にしながら作れば、そんなに難しい事は無いと思うが。
大体、作り方はMFCとそんなに変わらんだろ。
>>365 ヘッダは読んでるんだけど、意味がわからない部分が多いです。
グループは、元々ドキュメントを作ろうという人がいたので、
それに乗っかって作りました。
僕がほしいのはドキュメントで、編集とかならいくらでもやりますけど、
自分で書いていくのはちょっと無理だと思います。
こういちって本当に一人じゃ何もできない人なんだなぁ。
>>368 一人で出来なかったので、スレッドつくりました。
>>369 ていうか、何をしようとして挫折したんだ?
具体的な話が知りたい。
366>> WTLは、なんとなく雰囲気がわかってきたんですけど、 ATLは、さっぱりです。 本は1冊買ってきました。 けど、さっぱりわからないです。
つか、反論してるつもりなのかねぇ。 まさに教えて君だな。 「わからない」だけで自分がどこまでやってどこがどうわからなかったのかこれまで一言も書かないし。 ドキュメントが欲しくて編集ならやる? 自分はわからないから書くつもりもない? わからなくても調べるつもりもない? 一人でできなかったからスレ立てた? 普通は少しでも自分でやるもんだろーが。 「何一つ」やる気が無いだけだろ。 心底呆れた。
>>370 具体的な話は、ほとんど出来ないんです。
なぜかって言うと、まだ、スクロールウインドウとスプリッタと
デバイスコンテキストしか使ってないからです。
なんとなくとてもいいものだってことはわかるんだけど、
どう使っていいのかわからないです。
>>371 さっぱりわからないから何だ?
1から教えて欲しいのか?無理。
絶対に向いてないって。
本も豊富で簡単なお気に入りのC#だけやってればいいって。
このスレから身を引け。
すごいなぁ。ここまでの教えて君がよくWTLを触る気になったよなぁ。本気でマゾかも。
ほかの人は、このスレで何を語りたいのですか?
>>373 具体的な質問もできなくてスレ立てた、ってバカかおまえは。
で、高校生くらいなんだろ?
>>377 ほかにもそういう人はいると思いました。
いろいろ調べてみると、使っている人自体かなり少ないことがわかりました。
いつのまに語るスレになったんだよ・・・ハァ・・
>>379 君はWTLがどうだこうだ言う前にUIの勉強をした方がいいぞ。
「箸の使い方は分かったけど、御椀の使い方が分からない。」と言ってるようなものだ。
色んなソフトをspy++とかで覗いて、どんなコントロールの組み合わせで構成されているのか勉強しろ。
実は何を作りたいのかも考えてない?
>>380 ここに良く書き込まれているのは、WTLを使っている人は自分で全部解決できるので
質問自体無いってことです。
それで、何か語りたいのかと思いました。
だからさ、結局スレ立ててみたかっただけなんだって。 なんか「他の人のために」みたいなこと言ってるけど。
>>381 どうもありがとうございます。
spy++は、使ってます。
何を作りたいか以前に、何が出来るのかがわからない状態です。
あと、WTL・ATLだけでは足りないクラスがとても多いと思うのですが、
みんなはどういったもので補っているのですか?
>>382 ATLスレ見て無いのか。少ないが質問はあるしWTLの話もしてる。
つーかATLスレで十分なのにおまえが何も考えないでスレ立てたからこうなるんだ。
あとはATLスレの後にWTLスレとして有効に使ってやるからおまえは去れ。
質問も回答もできないただのMS信者は一つも役に立たない。
>>383 主に自分のためです。
質問したかったんです。
たとえば、ほかの人はどうやって調べるのかとか、
どういったものを作ったのかとそういうことです。
>>386 技術的な話じゃないならマ板にでも行って聞いてくればいいのに。
まさにスレ立てるまでもない質問だな。
>>384 へ?何が足りないの?
MFCにあるようなものは殆どあると思ってたけど・・・
それと何が出来るか考える前に、何か作る努力をしろ。
君程度の知識でATL/WTLの限界を語られても困る。
なんだろうね、この脱力感。あまりの厨房ぶりにかなりがっかり。
>>387 技術的な質問もしているんだけど、回答はつかないみたいです。
自分で調べた部分については、ウェブのほうに少しずつ書いています。
具体的に質問できないと言ってみたり技術的な質問はしてると言ってみたり・・・ 場当たり的な言い訳してるのがばればれだな
あと、みんなは、WTLで何を作りましたか?
>>392 少ないですけど、技術的な質問もしています。
ただ、回答がつかないです。
たぶん使っている人自体が少ないのだと思います。
>>391 足りない物はSTLで代用してるから不都合はないと思うけど。
コレクションが足りないのはMFCも一緒だろ
>>395 wikiのあるところです。
少しずつ、メモしていってるだけなので、
役に立つようなものになるのはだいぶかかりそうです。
最初にドキュメントを作るといった人たちは、
こういうメモを集約したいといっていました。
wikiが必要だという人がいたのでwikiを作りました。
僕には運営する能力は無いので、出来れば誰かが運営してくれると良いんですが。
あぁあのホワイトデーから放置してるやつね
>>397 やっぱりSTL使ってる人が多いのかな。
>>400 STLって出てるやん。つーかそんなことまで質問かよ。
なんで運営する能力がないと自覚してるのに立てるんだろう もしかして初めから他人を頼りにしてた?
だめだこりゃ
全然やる気無いね。こういちは放置決定。じゃ。
>>406 先導役くらいやれよ。糞SEのような奴だな。
>>409 みんなは、どういうドキュメントが必要なのですか?
ログを読むと、ドキュメントは必要ないって言う意見がほとんどなんですけど。
ぼくがwebのほうに書いていくことにしたのは、
あまり必要の無いものみたいなので、自分のためのメモとして負担の少ない方式に切り替えたんです。
あるていどメモがたまれば、それはそれで役に立つかもしれないし。
そんな感じです。
つーかお前ら
>>1 を当てにしすぎててキモい
>>1 は単に話題を提供しただけで、それ以上でも、それ以下でもない
あと、ヘッダを見てわからない部分というのは、 なぜ、そうなっているのかというようなことです。
あと、ここに書き込まなくなったのは、 ここにいる人と自分のレベルがあまりにも違うようなので、 少しずつコードを書いていたほうが建設的だと思ったっていうのもあります。 自分にとっては普通に疑問なことでも、わかりきっている人には、 がっかりすることが多いようなので。
414 :
デフォルトの名無しさん :04/03/25 03:11
とりあえず「ATLインターナル」って本を買って読めよ。
uzeーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
変なのが粘着してるな...。
418 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 14:35
粘着は、所詮Del厨だろ。
419 名前:デフォルトの名無しさん[] 投稿日:04/03/25 16:08
WTLに、
.NETでいうところのPanelクラスみたいなものってありますか?
できるだけ簡単なコードで、
ウィンドウより大きい画像をスクロールバーでスクロールさせたいのですが・・・
420 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 17:31
>>419 CScrollImplなんかどうよ?
421 名前:デフォルトの名無しさん[] 投稿日:04/03/25 21:43
>>419 ちょうどスクロールウインドウ使ってみたところです。
まだ良くわかっていないのですけど、
必要なら、わかる部分までまとめますけど?
皿仕上げ
ageてねーし
422 :
デフォルトの名無しさん :04/04/22 02:47
自作フリーウェアを、MFCからWTLに移行して公開したり したっけな。今はかなり忘れてるw いつのころか調べたら、3年前だったヨ
423 :
デフォルトの名無しさん :04/04/22 22:44
うーむ。 Windows 3.0のころから始まって、Win16 API→MFC→ATL+WTLてな感じで 歩いてきたけど、行き着いたのはWin32 APIですよ。 やっぱ、これが一番ストレスなくできて良いかなと。。。 え?WinFXですって?それって何味だよ。 もうトシかなw
つまんね
425 :
デフォルトの名無しさん :04/04/23 01:22
>>423 Cで書くのですか?
関係ないけど、ソケット関連が足りないなぁ。
426 :
デフォルトの名無しさん :04/04/24 03:37
CPaneContainer最強。
>>425 Cだよ。
アセンブラでも組んだりする。
最近はこっちに嵌り気味かな。
428 :
デフォルトの名無しさん :04/04/24 18:33
429 :
デフォルトの名無しさん :04/04/24 22:14
>>428 16bitのWindowsだとこんな感じ〜
tp://ftp.microsoft.com/Softlib/MSLFILES/MASMWIN.EXE
でも、漏れはMASM32使っているのでラクチン。
ttp://www.masm32.com/ めんどくさいって言っても遊びだからね。
仕事で使う言語と違う言語を家で使って遊ぶのさw
430 :
デフォルトの名無しさん :04/04/26 00:38
久しぶりにWTL+ATLを使ってコード書いた。。。 WTL3.1からみると今の7.1は変ったなぁ。ATL7の影響もあるのかな? CString を使うにしても、コンパイルエラーが取れなくて苦労した #define _WTL_NO_CSTRING #define _CSTRING_NS ATL の宣言がないと使えないの? この宣言を付けないと。。コンパイルエラーが取れないんだが。 誰か教えて。。 あとCAtlHttpClientを使ったけど、情報少ないね。 CAtlNavigateDataのSetChunkCallbackで設定するコールバック。。 MSDNでは引数2つだけど、、、3つ必要じゃない。。。MSDN違うぞ
431 :
デフォルトの名無しさん :04/04/26 01:05
>>430 何もしなければ、勝手に#define _CSTRING_NS ATLされるはずですけど。
WTL・ATLともに7.1で使ってるけど、問題出ていません。
こういちタンマンセーage
ありがとう
>>431 近づけようとしたら次のようなコードで限界です
#define _WTL_NO_CSTRING
//#define _CSTRING_NS ATL
#include <atlstr.h>
#include <atlbase.h>
#include <atlapp.h>
.....の後の
extern CAppModule _Module;
#include <atlmisc.h>
#include <atlwin.h>
#include <atlhttp.h>// ATL HTTP Client (CAtlHttpClient)
atlhttp.hが悪さしているような。。。
こういちMLの過去ログが非公開になったわけだが意味はあるのか
> atlhttp.hが悪さしているような。。。 たぶんこれは関係ないと思うのですが、 個人的に興味あるので、良かったらソース見せてもらえませんか?
>>433 MSDNから引用。
CString、CStringA、および CStringW は、ユーザーの DLL からエクスポートせずに、
MFC DLL (MFC7x.DLL) からエクスポートします。これは CStringT の多重定義を防止するためです。
これ関係ないですか?
438 :
デフォルトの名無しさん :04/04/27 22:31
439 :
デフォルトの名無しさん :04/04/27 23:09
>>437 atlmisc.hを廃止してatltypes.hを使うのはどうですか?
#include <atlbase.h>
#include <atlapp.h>
extern CAppModule _Module;
#include <atltypes.h>
#include <atlwin.h>
#include <atlhttp.h>
440 :
デフォルトの名無しさん :04/04/28 01:02
>>439 うまくいきました。
でも atlmisc.hの最後の方に定義されているグローバル関数も捨てがたいような
次は CAtlHttpClient.... 疲れる
class WTL相談室 : public 2chImpl<WTL相談室, Part2>
>>441 ワラタ
次スレのタイトルだな。
問題は次スレまで行くかどうかだが…
>>442 先代スレが13レスで終わったことを考えれば上出来(w
こういちバッシングで何レス稼いだことか
CAtlHttpClientはあまり使う人居ないから情報少ないんだよね。
というわけで
>>440 氏はがんばってWikiを充実させてください(w
WTLに興味があり下調べ中の者です。 MFCはウィンドウプロシージャで例外をハンドルしていますが、 VC6付属のATLには見当たりません。 私の目が悪いのでしょうか、それとも、自力で作る必要があるのでしょうか。
447 :
デフォルトの名無しさん :04/04/29 00:57
>>445 CAtlHttpClientだめだぁ〜。虫ありすぎ
448 :
デフォルトの名無しさん :04/04/29 14:16
ダイアログバーをメインフレームに貼り付けたいんですけど MFCのCDialogBarのようなクラスはないんですか?
↑一眠りしたら解決しました。
あげとこう。
ここはこういちと共に放置するスレだから上げなくていいよ。
452 :
デフォルトの名無しさん :04/05/09 06:33
MDIって推奨されないんですか?
>>453 3.1→95 で アイコン→タスクバーのボタン の流れと似たようなもんかね
はぁ?つーかWTLの話かよこれ。
viksoeさん、更新まだ〜〜??
彼がこういちスレなんて見てるかよっ!
しかもバージョン7.5が出てるね。
ソースを7.1と比較したけど、機能追加はなし。 細かな不良修正だけ
まあ今までも十分オープンソースみたいな物だったけどな。
まぁ、使い方からしてオープンソースの方が合ってるわな
とりあえずあちらこちらで取り上げられて知名度うpを期待
でもCPLとして独立して配布されたらGPLなんかとは"混ぜたら危険"になるのかな。
そもそもGPL自体、何と混ぜても発火するじゃん。
結局、WTLで作成したソフトをシェアウェアで販売するのは禁止になるの?
どこをどう読んで「結局」なんだ
>>469 そのスレのレス糞ばっかじゃん。
ATLベースなのも知らんし7.1から7.5の違いはVC6.0用のAppWizardが無くなっただけとか言ってるし。
放置して2ヶ月、か・・・哀れすぎる
474 :
デフォルトの名無しさん :04/05/20 00:06
レバーだろ
477 :
デフォルトの名無しさん :04/05/20 21:08
このコード、どうみてもおかしいんだが。動作もおかしい。 オプソ化したんならなら早く直してくれよ if((rbbi.fStyle |= RBBS_GRIPPERALWAYS) == 0) { rbbi.fStyle |= RBBS_GRIPPERALWAYS; bRet = SetBandInfo(i, &rbbi); ATLASSERT(bRet); rbbi.fStyle &= ~RBBS_GRIPPERALWAYS; }
オプソ化したんだから自分で意見出してこいよ
480 :
デフォルトの名無しさん :04/05/24 01:37
保守安芸
コンパイルが遅いんだよなぁ。俺のマシンじゃ開発辛いよぉ。 ライブラリ的にはいかしてるんだが・・・。
テンプレートライブラリはどうしても遅いよね。
コンパイル時間 / パフォーマンス = const.
WindowImpl とか言うクラス名がある時点でオレ的には没 ちゃんとWindowImplementにしとけよ>MS
>>484 は、WindowImplement が文法的におかしいことに気づいていない。
MS
とか言う略称を使ってある時点でオレ的には没
ちゃんとMicrosoftにしとけよ
>>484
487 :
デフォルトの名無しさん :04/05/26 12:18
そもそも"WindowImpl"なんてクラス名は無いしな しかもCWindowImplはWTLではないしな
なんとかして話に入りたかったんだろ。そっとしといてやれ。
ちょいと質問。 CSplitterWindowでクライアント領域を3つに分割して それぞれにコントロールから派生したビューを表示させようとしてるんですが、 CListViewCtrlと、CCheckListViewCtrlを使う場合、 それぞれ独自クラスに派生させて使うべき? それぞれ派生させるとなると、CListViewCtrlだと class HogeView : public CWindowImpl<HogeView, CListViewCtrl> でいけるんだけど、 CCheckListViewCtrlだと、同様にやるとエラー吐かれるんで、 class FugaView : public CCheckListView<FugaView> としてるが、これはこれで無問題かつ仕方ない? それともCFrameWindowImplの派生クラスにメンバとして 持たせといた方がいいのかな?
CCheckListView< > て何?どっから出てきたクラス? class CHogeView2 : public CCheckListViewCtrlImpl<CHogeView2> じゃダメ?
>490 ああ、typoしてた そそ、今はそうやってるんだけど、 CListViewCtrlの場合と統一性ないし それでいいのかなと思ったのよ
492 :
デフォルトの名無しさん :04/05/26 22:31
それぞれのクラスの基底側に注目。 ダイアモンドが出来ないようにすればいいだけ。
>492 そういうことを聞いてるんじゃないんだが。 まあ、それは置いといて、続きの質問。 チェックリストビューの場合は、 // Traitsは省略 class MyCheckListView : public CCheckListViewCtrlImpl<MyCheckListView, CListViewCtrl> { private: typedef CCheckListViewCtrlImpl<MyCheckListView, CListViewCtrl> _BaseClass; BEGIN_MSG_MAP_EX(MyCheckListView) MESSAGE_HANDLER(WM_CREATE, OnCreate) END_MSG_MAP() LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled) { if (_BaseClass::OnCreate(uMsg, wParam, lParam, bHandled) != 0) return -1; /* 独自の初期化 */ return 0; } }; という感じで独自の初期化をやってるんだけど、 通常のリストビューの場合だと同様のことをする方法が分からない。 独自の初期化をインプリメントするいい方法ありませんか?
同様にOnCreateを追加すればいいのとちゃうんか。
初めてこのスレでまともな質疑応答を見た気がする
>494 俺もそう思ってやってみてたんだけど、同じようにやると、 class MyListView : public CWindowImpl<MyListView, CListViewCtrl> { private: typedef CWindowImpl<MyListView, CListViewCtrl> _BaseClass; BEGIN_MSG_MAP_EX(MyListView) MESSAGE_HANDLER(WM_CREATE, OnCreate) END_MSG_MAP() LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled) { /* A */ if (_BaseClass::OnCreate(uMsg, wParam, lParam, bHandled) != 0) return -1; /* B */ /* 独自の初期化 */ /* bHandled = FALSE; */ return 0; } }; 派生元クラスにOnCreateが無いって言われるんだよね。 で、/*A*/から/*B*/までを消してやると独自の初期化は行われるんだが 派生元であるCListVewCtrl自体の初期化が正常に行われない。 ちなみに独自の初期化の後の /* bHandled = FALSE; */をコメントアウトすれば、 ちゃんと派生元の初期化も行われるんだが、その前にSetViewType(LVS_REPORT)とかしていると、 その設定が初期化されてしまう。 誰か、いい方法知らない?
>>496 _BaseClass::OnCreateではなく
_BaseClass::DefWindowProcを使ってみては?
CWindowImplにOnCreateなんてないよね。MFCじゃあるまいし。
あと、派生クラスがDefWindowProcをオーバーライドしてないならただのDefWindowProcでいいよね。
お、このスレもVC++初心者スレみたく、糞スレから普通のスレに変貌するのか?!
>498 ばっちり、期待通りの動作になりました。 結局、CCheckListViewCtrlは使うのやめて、 全部CListViewCtrlから派生させるようにして、 拡張スタイルでチェックボックスは後付けにするようにしますた。 多謝>ALL
>>502 CHAIN_MSG_MAPか、ALT_MSG_MAP使えよ。
あの一覧書き込むって、そうとう暇だったんだな。
>>505 一覧の左側だけは、The Code Project にあったんで、コピペして貼り付け。
viksoe.dk の WTL 7.0 Documentation にも関数の引数かいてないので、まあwikiの練習がてらにということで書いてみた。
>>507 それ、VS.NET2003 + WTL7.5だとコンパイルエラーになるな。
まあ、簡単に直せるけど。
まだ、VisualStudio6.0の方が多く使われているのかね。
どこがどういうエラーになるか教えれ
>>509 error C2248: 'CWebBrowser2<T>::String' : private typedef (クラス 'CWebBrowser2<T>' で宣言されている)にアクセスできません。
8件ほどあるな。まずはやってみろよ。
>>508 WTL使うような人はVS.NETにする必要ないのかもしれないね。
>>510 > WTL使うような人はVS.NETにする必要ないのかもしれないね。
いや、VS.NET になってATLの機能も上がってるからバージョンアップした方がいいだろ。
>>511 ATL::CStringはかなり使い勝手が良い。
WTLもがんばってほしいもんだ。
_AtlBaseModule?だっけ このへんが気に入らない。 CMyAppModule MyModule; CAppModule& _Module = MyModule; みたいなことがやりづらくなった。いや出来るんだけど
>512 WTL使いながら、CStringはATLのを使ってるよ、俺は。
WTLのCStringはMFCのよりどんな点が優れてるのでつか? (サンプル作ってみたけどインテリセンスきかなくてメンバも みられないのでわからんですばい)
WTLがATLから独立宣言するかもしれないってのにおまえらのんきだな。
そうなの? 独立出来るぐらい高機能になってくれれば良いんだけどね。 特にCString。
質問いいですか? CContainedWindow使おうとしててちょっと詰まってるんです。 class CMainDlg : public CDialogImpl<CMainDlg>{ public: enum { IDD = IDD_MAINDLG }; CContainedWindow m_contained; CMainDlg() : m_contained(_T("BUTTON"), this, 100){} //…略…メッセージマップとか LRESULT OnInitDialog(UINT, WPARAM , LPARAM , BOOL&){ m_contained.SubclassWindow(GetDlgItem(IDOK)); return TRUE; } //…略… }; こんな感じにするとコンパイルは通るんですけど 実行時にSubClassWindowでコケちゃいまして…。 それと、CContainedWindow関係以外のコードはウィザードが吐いたモノです。 何か物凄いバカやってるかもしれませんが どこがマズいか教えてくださいませんか?
>>518 //…略…メッセージマップとか
を書いて見せろ。重要なところだからな。
レスありがとうございます。 BEGIN_MSG_MAP(CMainDlg) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_ID_HANDLER(IDOK, OnOK) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) END_MSG_MAP() メッセージマップはこんな風になってます。 どこかおかしいですか?
>>520 ALT_MSG_MAP(100) がない。
あと、コケたときのエラーメッセージも読め&書け。
>>518 あのさ、そもそもOKボタンをサブクラス化して何使うんだ?
そりゃあ OK牧場
>521 あー、すみませんっ。 ALT_MSG_MAP(100) 追加したら動きました。 なんていうか、後で追加しようとしててすっかり忘れてました。 なんで質問する前に気づかなかったんだろう…。 本当申し訳ないです。 ええと、実はまだ同じような状態のコードがあってそっちは メッセージマップもきちんと書いてあったりします。 …けどまたしょうもないミスしてそうな気がしてきました。 おかげで解決しそうです。 付き合ってくださってありがとうございました!
>522 テスト用のコードなんで意味はないです。 コンボボックスとその中のエディットをサブクラス化して、 タブキーで移動したりリターンの押下検出したりしたかったんですよ。 で、コンボボックスをCContainedWindowで作ろうとしてるトコで ずーっと詰まってたりするわけだったりです。
やっとこさデバッグ終わりましたー。 >519さんありがとうございます。助かりました。 うーむ、CWindow::Create()のlpRectはNULLでもいいのに CContainedWindowT<CWindow>::Create()のはダメなんですね。 まず先にプロトタイプと実装確認しとけばよかったなー。
>>527 &CWindow::rcDefault にしておくっていう手もある。
>528 はい。そうすることにします。 というか、CWindow::CreateはlpRectにNULL渡すと 勝手にそれをやってくれるんですよね。 なんでCContainedWindowの方はそうなってないのかなぁ。
530 :
デフォルトの名無しさん :04/06/03 00:35
>>529 Win32 API の仕様で、WS_OVERLAPPEDWINDOW とかその辺のものじゃないと、
デフォルトサイズでの生成はできなかったはず。 WTL もそれに準じているんでしょう。
MFC の CWnd::FromHandle(hWnd); に相当するもんはないんかなぁ?。
CWndが無いんだからあるわけないだろう
というかいらないよね
>>533 「相当」という語の意味が理解できていないようですな
>>536 ウィンドウハンドルから「ATLの」ウィンドウオブジェクトを作りたきゃ
CWindow win = hWnd;
でいい。
CWindowは内部でCWndみたいなことしてないんだから相当するものがあるわけないだろう。
ATL::CWindow::operator= (HWND)が、MFCのCWnd::Attach(HWND)に相当する。 CWnd::FromHandle(HWND)と似た使い方が出来るが、厳密には同じではない。
つまりCWnd::Attachに相当するものはあるが
FromHandleに相当するものは
>>537 の意味なら=、Attach、違う意味なら無い。
でもAttachじゃなくてFromHandleに相当するものを聞いてるんだから
回答は後者の「相当するものはない」が適当なんじゃないの。
元質問者は煽るだけで話についてきてないんじゃないのか
>540 何かりかりしてんの? >540=538か?ワラ
あ、まちがいた >540=537だな
>>541 いや、質問してから、何もかきこんでないし。
てーか、MAPつかって、自分で処理しないとだめなんですなぁと思ったが、
めんどくさいので他の方法でなんとかしますたよ。
>>543 違うが。つーか間違いは素直に認めれ。煽るのはカコワルイ。
おまえらレス番間違えすぎ。落ち着けよ。
そもそも
>>532 はどんな処理でFromHandle相当のものが必要になったのだろう
>>547 あー、いや、FromHandle(hWnd);つかえたら便利だなぁと思ったけど、
使えないから、泥臭いコードかいただけって話です。
(例えば、SetWindowLongPtr() に LPVOID に ポインタいれとくとか・・・。)
お答えくださった皆さま、どうもありがとうございました。
おう、レス番ちがってるしw
>>533 失礼した。
>>548 いやねぇ、 FromHandleで Cwindow* のポインタGetしたときに、
dynamic_cast で とあるクラスに変換できたら処理して、できなかったら何もしないとかできたらうれしいなと。
てーか今考えたが、ウインドウネームでなんとかなるじゃねーか。
>540はなんだ、結局それはoperator=じゃねえ、 コピーコンストラクタだってことが言いたいのか? よく文章読んでから煽れや、池沼
つーか間違いは素直に認めれ。煽るのはカコワルイ。
厳密には同じではない とか言ってる人間が厳密性を欠いた発言してんだもんなー
つか厳密にはずっとATLの話してるな。もう少しで埋まるんだからATL相談室使ってやれよ・・・
そもそも、WTL/ATLの区別はどこらへんでつけるのかと・・・。 自分的にはCOMとかならATLの方にかきこむけど・・・。 GUI周りなら、WTLと決めてるて感じ。
そもそも、WTLとATLを切り離して話をすることが無理
CComObject と CWindowImpl で切り離せばいいじゃないの? CWindowImpl は、ATL だけどウィンドウだからこっちのスレで良いのでは。
プロジェクトの種類もATL/WTL一緒になってるしね
559 :
デフォルトの名無しさん :04/06/08 23:04
そんなの世の中のWTL本全部かき集めたところで分かりゃしねーよ
>世の中のWTL本全部かき集めた そんな便利なものがあるのか
562 :
デフォルトの名無しさん :04/06/13 01:16
みんなでWTL本かこーぜ
自費出版かよ
>>562 こういちみたいな勢いだけの発言するなよ
565 :
デフォルトの名無しさん :04/06/18 03:50
みんなでWTLビデオ撮ろーぜ
俺男優な
やっぱりオライリーの本みたいに、何か動物を模そうよ 何がいいかな?
>>567 俺のゴールドフィンガーでスイッチを入れたらPCが潮吹くぜ
>>569 だからペルチェ素子はやめておけって言ったのに。
VC++6.0にWTLインスコしてみました WTLにはstd::vectorに代わるもんは無いの?
そのへんはATL7だろう。WTLはGUI関係のライブラリだと思った方が良い。
つーか、std::vectorが使いたいならstd::vector使えば良い。 最近のATL/WTLはそもそもSTLと連携することを念頭においてるんじゃなかったか?
どこでそんな話が?<念頭 今のところATLと同様なるべくCRTに依存しないようになってると思うが。
ATLインターナルにはSTLと一緒に使えみたいなこと書いてたな。
576 :
デフォルトの名無しさん :04/06/24 13:49
CComEnumOnSTL あたりが、STLとの連携を念頭に置いてるね。
STLと連携することを念頭においてるなら引数にCStringなんて取らずに、 std::string取って下さい
WTLの構造って全部Hに書いてあるわけでしょ? このソースぱくれば自分で好きな機能使えるんじゃないの?
そうだよ、よかったね。
このスレも終わりだな
どうした突然。まぁ
>>1 のやりたかったことはとっくに終わってるが。
582 :
デフォルトの名無しさん :04/06/24 16:44
>>577 それを言うなら std::basic_string<TCHAR> だろう。ボケが。
584 :
デフォルトの名無しさん :04/06/24 17:01
↑アフォ
is this thread alive?
dead...
587 :
デフォルトの名無しさん :04/06/24 19:41
正直MFCの改悪版にしか見えない
MFCはランタイムいるだろ
atl.dllは要らないのか?>wtl
MFCはスタティックリンクしたらいらないじゃん
釣られんな
592 :
デフォルトの名無しさん :04/06/24 23:40
>>589 スタティックリンクを知らないバカバッカ <- <<588-589
そこをC言語の文字列操作関数でカバーするw
MFCはmainが隠蔽されてるではないか!
MFCはブラックボックス
>>598 思いっきりソースが公開されているじゃないか
mainにだらだらと書くのはどうかと思うよ。
つかいちいち釣られんなよ
MFCはN88-BASICの改悪版
↑頭の可笑しい人
605 :
デフォルトの名無しさん :04/06/26 23:40
エクスプローラの左側のフォルダのやつを作っています(CFolderViewと命名) CFolderViewクラスはスプリッタで区切ったMainFrameの左側に設置しています class CFolderView : public CWindowImpl<CFolderView> という風なクラスにして CtreeViewCtrlをメンバに持ちFolderViewクラスのOnCreate()でツリーを作ったらうまく表示されてくれたのですが class CFolderView : public CWindowImpl<CFolderView, CTreeViewCtrl> と FolderViewクラスをTreeViewCtrlの派生クラスに修正したらツリーが表示されなくなってしまいました OnPaintで文字を出力させてみたらちゃんと文字が表示されていたのでFolderView自体は表示されていると思うのですが・・・ どこか勘違いしているのでしょうか・・・ご教授ください(TT
すみません、自己解決しました DefWindowProc呼んでませんでした ちょっと前に話題になってるし・・・よく調べもせず、すみませんでした(TT
ジェット機突っ込んで崩れたビルね
別スレに誤爆したろ
WTC
あー
CDCとかCRectとか便利なクラスが色々入っていていい。
CPointとかCRectはPSDKに入っててもいいような気がする。
>>615 Gdiplus::Rectangle とかあるし。いや、タダのボケ。いいたいことは分かる。
PSDKはあくまでもAPIの提供でCがベースだからな。 CRectとかはATLで提供してるから今更また別個にすることは無いだろう。
COMとかGUIDのサポートは入ってるのに。
>>619 それはC言語でRECTを使うのは可能ですが。
って言ってるのと等価ですが何か?
comdef.hとかguiddef.hとか見てみろ。
>Cがベースだからな。 に対して C++用のサポートコードが入ってるといってるんだ。 いいからcomdefやguiddefを読んで来い。
>>618 のカキコから
「C++用のサポートコードが入ってる」と言いたいなんて分かるわけないじゃん。
理由を後付けするな。
>>623 >>624 の言うように、普通はまさかCで使えないなんて思考するとは思わない。
となると、話の流れからCで使えるのは前提として、
C++のサポートが余分に存在している事について言及しているとしか考えようがない。
おまえらWTLと関係無い話をするな
627 :
デフォルトの名無しさん :04/07/08 00:31
mochituke
とあるWindowのOnPaint処理で LRESULT CTestView::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { CPaintDCdc(m_hWnd); DrawA(dc); DrawB(dc); return 0; } という風にしているのですが、DrawAで描画している内容は表示されるのに 何故かDrawBで描画している内容が表示されません・・・ 試しにDrawAの中身を全てコメントアウトしても同じ結果になってしまいました またDrawAの呼び出し部分をコメントアウトするとDrawBの描画内容が表示される為 DrawAを呼び出すことで勝手にEndPaintされてしまっているのかと思っているのですが・・・ こういう場合は、DrawBの処理もDrawAに入れてしまうしかないのでしょうか?
>>628 DrawAの宣言はどうなってる?
こんな感じか?
void DrawA(CPaintDC dc);
>>629 まさしく、その通りになっております
戻り値voidで、引数がCPaintDCですね
CPaintDC のコピーコンストラクタを調べてみぃ。
参照にしとけばいいんでねーか?
WTL的には、参照よりもCDCHandleかな。
>>631 無いな。
コピーされたら困るのに
private:
CPaintDC(const CPaintDC&);
が無いのはなんでだろう。
>>631 &632
なるほど、引数でクラスを渡すとスタックに実態がコピーされてコンストラクタ&デストラクタが呼ばれることになるんですね
ぜんぜん仕組みわかってなかったみたいです(T。T
void DrawA(CPaintDC &dc);
参照渡しにしたら無事に動きました
ありがとうございます
>>633 参照はWTL的じゃないですか_no
調べてきます
MFCとは違ってCToolBarCtrlはあるけどCToolBarが無いみたいなんだけど、 メッセージを処理したい場合はどうすべき?
class CToolBar : public CWindowImpl<CToolBar, CToolBarCtrl>
ありがとん
641 :
デフォルトの名無しさん :04/07/21 22:23
>>641 VS.NET 2005にも対応するわけか。
Web全体で「WTL 7.5.4196.0」をぐぐってもほとんど出てこないな。 海外含めてバージョンアップしたことほとんど知られてないんじゃないか。
644 :
デフォルトの名無しさん :04/07/22 17:00
>>643 いずれこのスレがトップで引っかかるようになったりしたら世も末だな。
645 :
デフォルトの名無しさん :04/07/24 14:23
本当だ。おせーなおい。
WTLには、MFCのCFileのようなファイル入出力を扱うクラスって、用意されてないんでしょうか?
日本語化はできないの?
650 :
デフォルトの名無しさん :04/07/31 13:08
_Module無しで、WTLのCStringを使うことは可能でしょうか? atlmisc.hをインクルード>atlapp.hが必要です>atlbase.hが必要です >_Moduleがありません…でショボーンとしてます。
>>650 #ifndef __ATLAPP_H__
#error atlmisc.h requires atlapp.h to be included first
#endif
と言うわけで、ヘッダをいじらない限り無理。
>>651 アイヤー意外に不便なんですねぇ…
すっきりしました、レスありがとうございました
653 :
デフォルトの名無しさん :04/08/09 02:25
助けて下さい!ツールバーのボタンを押されている状態にしたいのですが
上手くいきません。これで終わるのに、まさかこんな事で(´Д⊂
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl06-07/ こちらの通りにしているだけに、何がまずいかさっぱりです
デバッガで追っても、しっかりatlframe.hにある
UISetCheck(int nID, int nCheck, BOOL bForceUpdate = FALSE)のcase文まで届いています
自分でTB_CHECKBUTTONを送っても駄目なので、
何か根本的なとこ(TBSTYLEとか)を間違ってそうなのですが・・・。
できたけど。
UPDATE_ELEMENT追加してないとかOnIdleでUIUpdateToolBar呼んで無いとか
>>654 実行ありです、わずかな疑念も吹っ飛びました(´Д⊂
環境も全く同じなのになぁ、何故かへこんだままでいてくれない
>>655 確認ありです。最終的にこのソースだけ(コピペ)だった事もあり、その辺は大丈夫みたいです。
となると後はリソースの作り方だけですかねぇ。
IDR_MAINFRAMEという名のツールバーを作り、ID_MENUITEM_TOPMOSTという
アイコンを追加しただけなのですが・・・もうダメポ
ソース見せた方が早いかも。
TBSTYLEとか << どう考えてもこれだろ・・・ TBSTATE_ENABLEDを指定しているとか。
UIAddToolBarしてないとか <<どう考えてもこれだろ・・・
コピペしてると書いてるからそのへんは大丈夫だろ。 大丈夫じゃなかったらぶっとばす。
メッセージマップでCUpdateUIにCAINしてないとか
662 :
デフォルトの名無しさん :04/08/10 04:11
>>653 次の中から適切なものを選べ(複数選択可)。
1. UPDATE_ELEMENT追加してないとか
2. OnIdleでUIUpdateToolBar呼んで無いとか
3. TBSTATE_ENABLEDを指定しているとか
4. UIAddToolBarしてないとか
5. メッセージマップでCUpdateUIにCAINしてないとか
6. ぬるぽ。
まぁぶっちゃけCHAINをCAINと書いてしまった俺だが。
カインメッセージマップ
キャイーン
>>653 で、原因は結局何だったの?
それともまだ解決してない?
こんだけの人が助言してやってんだから
報告くらいしないと撥あたるよ
自己解決しまつた。
>で、原因は結局何だったの?
ム板にもIDが必要かもしれないな
いや、ぶっちゃけ原因なんてどうでもいいんだけどな。
うほっ、まだこの話題とは。騙りまで出てる。 レスくれた方々、すんません。 結局出来ないので、ボタンコントロールで偽ツールバーを作って誤魔化し、 そのままお盆突入してました。適当人生。
WTLって、難しいな
675 :
デフォルトの名無しさん :04/08/18 18:33
911
676 :
デフォルトの名無しさん :04/08/21 11:10
ATLのCStringと、WTLのCString、どっちを使ったほうがいいですか? ATLの方は、CString.Formatが浮動小数点に対応してて便利なんだけど、 atlstr.hをインクルードするとなぜか実行ファイルサイズがめちゃくちゃ大きくなってしまいます。 こっちがお勧め、とかあったら教えてください。
用途に合った方がおすすめ。
ATLを使うと一気に実行ファイルサイズが10倍に?!
C++スレでもATLスレでもないので二重にスレ違い
680 :
デフォルトの名無しさん :04/08/21 18:42
>>676 両方使えるなら、ATLのほうを使うのが正解。
40KBほど大きくなるという意味なら、我慢しなさいとしか言えない。
それ以上大きくなるなら、何が必要で何が必要でないか一度考えてみたらいいと思う。
少なくともダイエットさせることは可能。
>>679 WTLが比較対象に入ってるんだから構わない
CreateThread
>>680 > 両方使えるなら、ATLのほうを使うのが正解。
これは何故ですか?
ATL/WTL つーより、_ATL_MIN_CRT の問題だったりしないか?
>>686 それは_Moduleが必要というだけでATLを使う理由にはなってないと思うが
というか、どうでもいいのでは? ATL::CStringのないVC6のためにあるようなもんでしょ。 違うの?
>>688 もともとSTLのstring使わせるつもりだったんだよな。
Windowsプログラマには人気高いのかねぇ>CString(MFC)
有名どころのMFC拡張ライブラリがCStringを使いまくっていることが原因かな。 Format()に相当するメソッドがstd::stringに無いのも大きい。
たぶんstd::stringにFormatにあたるのが無いのは文字数を数える_scprintfが標準では無いのも大きい。
と思ったけどよくよく考えればstringstreamがあるからか。
boost:Formatが次期標準になるに違いないので問題無い。
C++0x は 200x のうちに出るんだろうか……。 あと、CStringA はマルチバイト対応だけど、 std::string はシングルバイトのみってのもあるかな。 (char_traits でどうにかなるかもしれないけど。)
もともとATLの設計としてなるべくCRTを使わないという前提があったため、 std:stringではなく独自の文字列クラスを作ったんだよ。
#ifdef _UNICODE #define std:tstring std::string #else #define std:tstring std::wstring #endif でええやん
>>696 逆だし、それだったら
namespace std
{
typedef std::basic_string<TCHAR> tstring;
}
の方がいいじゃん。
boost:Formatはさらに大きくなるからな
>>679 こいつは普段から人の話を全く聞かない人間なんだろうな。
>>699 どうした。亀レスしてでも言い返したいほど悔しかったのか。
boostを使うと一気に実行ファイルサイズが10倍に?!
>>697 それだとコンストラクタでのXCHAR/YCHAR変換ができないし
Formatもないし、やっぱCStringのが便利だな。
operator PCXCHAR() の存在も、悪いスタイルといいつつ
便利は便利。
Win環境だとSTLは使ってもstd::stringじゃなくCStringT
使ってる人が多いよやっぱ。
>>702 >operator PCXCHAR() の存在も、悪いスタイル
どの辺が悪いスタイルなのよ?よくわからん。
>>703 コンストラクタやキャスト演算子によって、暗黙の型の広がりをあまり
広くするのは、便利ではあるけれど良くないとされる。
プログラマが意図しない変換が発生することもあるから。
std::stringだとそのために、キャスト演算子は用意してないワケでしょ。
ただし、MSのライブラリでは多用されてますね。正直、c_str()は
かなり多用することになるので、キャスト演算子があったほうが
「分かってる人にとっては便利」だと思う。
それともう一つ。CStringTのGetBuffer()も、「汚いけれども便利」
な機能ですね。
>>704 なるほど、確かに。
CString str1="xxxx";
cout << str1 << endl; // ライブラリ依存??
上のように記述した時、coutがstr1の適用方法をvoid*型と判断して、
インスタンスstr1のアドレス16進を表示してしまうコンパイラがあったね。
ある意味、間違ってないけど、不便だった。
string str1="xxxx";
cout << str1 << endl; // 正常に動く
std::stringはこんな不具合は当然ない。キャストなしでも意図したとおりに動く。
>>705 それはCStringもoperator <<(basic_ostream<TCHAR>&, const CStringT&);を用意すればよさそうな気がする。
>>705 は偉そうなこと書こうと必死にがんばってる厨房だな
みなさん、貴重な情報ありがとうございます。 ファイルサイズの問題は我慢して、これからは素直にATLのCStringを使って生きたいと思います。 ただ、_ATL_MIN_CRTってのが良く分かりませんでした。 これをつけると LIBC.lib(crt0dat.obj) : error LNK2005: __osplatform は既に atlmincrt.lib(atlinit.obj) で定義されています。 LIBC.lib(crt0.obj) : error LNK2019: 未解決の外部シンボル _main が関数 _mainCRTStartup で参照されました。 になったんですが・・・
付けなきゃイイじゃん。
std::stringのfind系メソッドが使い物にならんことを理解してない奴がいまだいるのか。
711 :
デフォルトの名無しさん :04/08/24 17:31
どう使い物にならんのかも書けない香具師さえいるしな。
その話はもう終わったことに気づいてない奴がまだいるのか
ここまでの流れでWTLの話が全く出てこないな
>>710 CStringTのTCHAR用のTraitsだと、_tcs系の(MB対応済みの)関数が
使われるからね。ま、それだけでマルチバイト文字の問題全てが
解決する訳では全くないがな。
そういう意味でもstd::basic_string<TCHAR, ...>じゃ
何の解決のもならないワケだ。
だから全部Unicodeで書けばすぐ解決すんだろ藻前裸帰れよここはWTLスレなんだよ。
>>715 COMは(つかBSTRは)WCSだし
NT系OS仮定していいんなら明示的にW版のAPI使えばいいんだけど、
MFCだのATLだのWTLだののレイヤは、ぜんぶTCHARベースだからねえ
ま、UNICODEをdefineするのが前提なら、そんでも構わないけどさ
今のところは、TCHARベースで、COMとやりとりする場所でBSTRとの
変換が発生するというのが普通のスタイルなんじゃないの。
>>714 MB対応の関数は_mbs系だアホ。
TCHARはwchar_tとcharを切り替えるだけでマルチバイトの問題は放置だし。
718 :
デフォルトの名無しさん :04/08/25 06:41
std::string 系は標準と思えないくらい使いにくい ・・・と思うのは俺だけ? .c_str() とかかっこわる あと UNICODE との置き換えとかな せっかくだから WTL の話題・・・。 CFile とかの派生に EUC、SJIS、UTF-8、UNICODE を意識しないで 使えるファイルクラスがあるといいのに。 LineRead とかあれば文句ないんだが・・・。 自分で書くか・・・ つか誰か作ってるっしょ?
>>718 > あと UNICODE との置き換えとかな
std::wstring 使う、って話じゃなくて?
>>718 文字列をstd::stringではなく、char*だと思っているから使いづらいだけだろ?
>>717 tchar.hは#ifdef _MBCSでも切り替えていますが何か。
stringに置き換えくらい標準で付けてくれればいいのにな。 全て置き換えとかしたかったら面倒なコード書かなきゃ逝けないし。
相変わらずWTLについては誰も話してないな。 まあ誰もまともには使ってないんだろうな。 結局すげえ面倒だし、サイズが小さくなる分 windowsx.h自分でラップして使った方がマシだし。
WTLの話題と言いつつATLの話してる
>>718 とかな
>>723 オレオレ、WTL使ったやつ納品してるぞ。
WTLにCFileなんて無いよね?
>>718 って頭おかしいの?
二度も言わないで良いよ
そういえば最近はMFCで組むときでも CFileよりもCAtlFileを使うようになってきたなぁ。
WTLにCAtlFileなんて無いよ
>>723 そんな事もないんじゃないか?
いったんMFCで大ざっぱに作ってから、
WTLにコンバートするってのもアリだと思うけど。
ATLスレって次スレ作るんだろうか。
735 :
デフォルトの名無しさん :04/08/25 19:31
WTLってヘッダファイル見れば構造丸分かりジャン 必要なものだけ自分のプログラムにぱくればウマーなんじゃないの? 例えばウインドウの出し方とか
736 :
デフォルトの名無しさん :04/08/25 19:58
ATLとWTLの違いはなに?
一文字目
>>735 そのまま使えるものを、わざわざ手間暇かけて劣化コピーを作ることも
ないっしょ。
調べてみてもいまいち良く分からなかったのですが、 _ATL_MIN_CRT を付ける目的、メリット、デメリットは何ですか? なんとなく _WTL_NO_CSTRINGと相性がよくない気がします・・・ 質問の流れで直接WTLとは関係ない話になってしまって申し訳ないです。
名前のとおりじゃん。CRTをできるだけ使わないようにする。
つまり液晶を使うってことだな。
おじさんつまんなーい。
以下WTLの話題でよろしく
746 :
デフォルトの名無しさん :04/08/26 15:55
ところでおまいらどのバージョンのWTL使ってるよ。 最新のか?
うん
最新のだとVC6用のインストーラがついてこないんだよね
AppWizardね
750 :
デフォルトの名無しさん :04/08/26 18:44
ところでおまいらWTLってどこで知ったよ?
Donut
インターネット
モニタの前
紙メディアではまったく紹介されていないということがわかった。
俺は2chのどこかのスレでWTLという単語を見て自分で検索した気がする。
DONUT
ミスド
ReBarくらいは参考になるね
暇な方、ちょっとこれ落として試して頂けないでしょうか。
ttp://49uper.com:8080/img-s/6011.zip ダイアログベースで、ラジオボタンが2つあるだけの物なのですが、
ボタンを押してないのに、いきなりOnHoge()が呼ばれてしまいます。
ここまで分からないのは初めてです…。たぶんつまらない事だとは思いますが。
環境はVC6とWTL7.1です。
760 :
デフォルトの名無しさん :04/08/26 23:12
すいません、アップローダが流れるかもなのでageます
ウィルス
puts("Hello, world!");
>>759 なんだろう、不思議だね
WTLのバグ?
>>759 二つとも BS_AUTO3STATE つけてるから、初期表示状態でどちらかが
押された状態にならないといけないから、windows が勝手に値をセット
したために、イベントが呼ばれているんじゃないかな?
と思ったら違うかも、ごめん。 ボタンもう一個追加したのに HOGE2 が呼ばれるなぁ・・・
ぐぁ、すいません、プロセスが残っちゃってますね。
MessageBoxをコメントアウトして、代わりにブレイクでもかけてもらえれば…
>>766-768 お二人ともレスありがとうございます、なんとも不思議で…
BS_AUTO3STATEは大正解かも!
それを伺ってBS_AUTORADIOBUTTON辺りかなと、
今試しにWTLのWizardがはいたコードに、似たようなラジオボタンを配置したら
しかしBS_AUTORADIOBUTTON付いてても問題も無く動きますねぇ…
ちなみに
>>759 は、かなり大きなプロジェクトから削っていった物なんです
BS_AUTO3STATEのヒントのおかげで、何となく分かってきたなぁ…やっぱりリソースですね
759のリソースだとBS_AUTORADIOBUTTONを削れば、最初にメッセージは来ない 普通のリソースなら、BS_AUTORADIOBUTTONが付いていても、メッセージは来ない ラジオボタンのリソースがCONTROL "",ID,"Button"型ではなく、 RADIOBUTTON型だと、BS_AUTORADIOBUTTONを削ってもメッセージが来てしまう? 分かったような分からないような…しかしとりあえず動いてホッとしてます 改めてレス感謝、ありがとうございました
>>759 LRESULT OnHoge2(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& /*bHandled*/){
ATLTRACE(_T("%d %d %d\n"), wNotifyCode, wID, hWndCtl);
//MessageBox( "何故かこれがいきなり 呼ばれてしまう", "???", MB_OK );
return 0;
}
こういう風に変えてトレースを見るようにすると一回しか来ない。
値は 0 1002 460106 だったんだけど、
ダイアログって最初にフォーカス当てるようになってるから
そのイベントが来てるんじゃないかな。
と思って検証
検証1:
ボタンを追加してみた。
結果1:
ボタンにフォーカスが移りメッセージボックスは出ない
このときフォーカスはボタンにある<ここがミソ?
検証2:
OnInitDialog で FALSE を返してみる
結果2:
だめぽ
>>771 そ、そうかなるほど!フォーカス分でしたか
本当だ、タブオーダー変えたら今度はOnHoge1になりました
仰るとおりでFALSE返してもアクティブになっちゃいますねぇ
今後は大人しくBN_PUSHEDとかで捕まえておきます
いやおかげでぐっすり眠れそうです、ありがとうございました!
いや、僕もちゃんとわかっているわけではないので、 本当の理由というかダイアログの仕組みを詳しく知っている人が いたらフォローしていただけると幸いです。 ちなみに、CDialogImplBaseT< TBase >::DialogProc で 送られてくるメッセージを観察してみると WM_SETFONT WM_INITDIALOG WM_SHOWWINDOW WM_WINDOWPOSCHANGING WM_ACTIVATEAPP WM_NCACTIVATE WM_GETTEXT WM_GETICON WM_GETICON WM_GETICON WM_GETTEXT WM_ACTIVATE WM_IME_SETCONTEXT WM_IME_NOTIFY WM_SETFOCUS WM_KILLFOCUS WM_IME_SETCONTEXT WM_COMMAND <これが該当のコマンド ってなってました。
WTLの話じゃないかもしれんが質問。 リストビューにシステムのイメージリストを関連付けるとCFolderDialogで表示されるファイルアイコンの背景色が黒になるんよ。 リストビューでの関連付けをしないようにすると普通に表示されるんだけど。 誰か原因を教えておくれ。
余計なメッセージは反射しちゃいけない。
void Init() { T* pT = static_cast<T*>(this); SHFILEINFO sfi; HIMAGELIST himl = (HIMAGELIST)::SHGetFileInfo(_T(""), 0, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON); SetImageList(himl, LVSIL_SMALL); pT->AddColmuns(); } リストビューの初期化部分。 SHGFI_SMALLICONをSHGFI_LARGEICONにすると大丈夫なんだけどねぇ。
そのとおりにイメージリストをセットしてみたけどちゃんと透明になってる。 原因は他の部分だ。
78.0%憶測で言うけど、リストビューのスタイルにLVS_SHAREIMAGELISTSがないとかは?
PC再起動したら直ったりして。 ディスプレイの解像度を何度か切り換えたらエクスプローラのフォルダツリーのアイコン背景が黒くなったことがある。 そのとき再起動したら直った。
>>780 その78.0%ってのは、スレ番が780だからなのかな。
>>779 メインフレームに直置きしたら大丈夫っぽいんでどうやら親ウィンドウが原因みたい。
>>780 22.0%の確率でLVS_SHAREIMAGELISTSは付いてます。
>>781 何度再起動してもいかんのですよ。再起動しなくても他のプロジェクトのは普通に動いてるし。
どうもリストビューを置いてる親ウィンドウが悪さしてるみたいなんでいろいろ弄ってみます。
自己解決。 どうやら自作リストビューのOnCreate内でInitを呼び出したのが原因のようで。 作り終わってからInitを呼び出すと大丈夫みたい。 LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { Init(); return DefWindowProc(uMsg, wParam, lParam); } Init();をコメントアウトしたらOKでした。 アドバイスしてくれた皆様ありがとう。
OnCreateではDefWindowProc();を呼び出してから処理をするのが定石じゃんか・・・
WTL付属サンプルのMTPadのview.h見てみ。 OnCreateの最初で読んでるから。 ドキュメントの少ないWTLはサンプルも貴重なドキュメントだ。
>>787 ははあ、スーパークラス化したウィンドウは先にDefWindowProc呼び出すんか。
サンクス。
789 :
デフォルトの名無しさん :04/08/29 08:26
stdafx.h内で #define _RICHEDIT_VER 0x0200 としてRichEdit2.0を使用しています。 WinXP/2000環境では何ら問題ないのですが、 Win98環境ではCRichEditCtrlのCreate()でクラッシュしていまいます。 WTLはWin98のサポートはしてないんでしょうか? WTL 7.5を使用してます。
>>789 そこまで、クラッシュ発生条件が絞り込めているなら、
解決策は自力のソースの解析で出すべきでしょう。
とはいえ、Win9xでIDEデバッグする行為自体が大変でしょうけど・・・。
>>790 >とはいえ、Win9xでIDEデバッグする行為自体が大変でしょうけど・・・。
そうなんですよ。
Win98にDebug環境を入れりゃいいんだけど同じ経験した人いるかなーと
思って質問したわけです。
だってソースは #define _RICHEDIT_VER 0x0200 この部分しか修正してないのに、
Win98で動かないなんて士気下がりまくり(;´Д`)
今時Win9xをサポートする意味がわからんが
>>792 それを言っても仕方ないでしょ。仕事でどうしても既存のマシン使うことが
要求されてるのかもしれんし。
リビルドしる
>今時Win9xをサポートする意味がわからんが
そんな時代になっちまったか(´・ω・`)
でもまだWin98はギリギリサポートするのが普通じゃないの?
>>795 Win98にはRICHED32.dllしか入ってなかったよ。
…てなオチならいいんだけど、ちゃんと入ってる。バージョンはXPの物より低いけど。
XP付属のDLLなら問題なく動くんだよなぁ。最悪のケースはXP付属のDLLを同梱か…。
もうちょっと調べてみますわ。
98使うくらいなら普通にNT4.0入れるだろ あくまでも業務なんだし
そんなWTLに関係無い話どうでもいい。
>>797 Createの引数は具体的に何を渡してる?
IEのバージョンが古いというオチでは?
>>797 Win98と2k以降のRICHED32.dllってかなり仕様が違ってた気がするが。
同じ動作はあまり期待できなかったと思う。
>>800 Create( m_hWnd, rcDefault, NULL,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL |
WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_SAVESEL,
WS_EX_CLIENTEDGE);
こんな感じです。特に変わった事はしてません。
ウィザードでview windowにRichEditを選択し、、
#define _RICHEDIT_VER 0x0200 ここを修正しただけのプロジェクトをビルドした物でも
不具合が出るEXEが再現出来ますね。
>>801 ええ、いろいろ疑ってWindowsUpdateしたんですが変わらないですね。
>>802 RichEdit1.0(RICHED32.dll)ならWin98/Me/2000/XPで動く事は確認しました。
仕様が違っても最低限動作する互換性くらいはあるんじゃないの?わかんないけど。
後はCreateWindowEx()呼んで自前でRichEdit作るって手もあるんだが。
ソース見ればCrichEditCtrl自体はそんな複雑な事してないようだし。
>>806 >>789 にCreateでクラッシュと書いてるからウィンドウを作ること自体ができてないと思うが
>>806 Create()内で落ちるのでメンバ呼ぶ以前の問題ですね。
ええと #define _RICHEDIT_VER 0x0200 が定義されると
ウィンドウクラスにRICHEDIT_CLASSが登録されるようになるみたいです。
現にXPでは上記の方法で2.0のRichEditが使用可能になります。
憶測ですがCRichEditCtrlは問題ないと思います。
CRichEditCtrlが呼び出すベースクラス(CFrameWindowImpl辺り)かもっと深い所にある
ATLで問題が発生していると思ってます。
今、リモートデバッガを入れてる途中なので終わったらデバッグプロセスを走らせてみます。
リモートデバッガ入れたらRICHED20.DLLが置き換わったらしく、 問題のEXEが問題なく起動してしまいました。事実は闇の中状態です。 RICHED20.DLL(ver5.0) N.G. RICHED20.DLL(ver5.3) O.K. もう面倒だから後者のDLLを同梱するかな…。
ぽかーん・・・・
WTLの問題なのかどうかも怪しくなってきたな
>>718 情報ありがとう。
そう言えばWindows Installer 2.0もインストールしたなぁ。
こいつが新しいDLL入れるみたいですね。
>>813 いやそれがRichEdit2.0を利用してると思われる他のソフト(多分MFC)は古いDLLでも動いてたんで、
WTL(ATL)が何か特別な事してて落ちてるのかなーと思ったんです。
実際、CreateWindow()でコントロール作ると問題ない訳ですから。
腑に落ちないがインストールする時にDLLのバージョンを確認して古いバージョンの場合は
新しいDLLをインストールする様な方向で何とかしようと思ってます。
勝手に配布しても問題のないDLLなのか? ちゃんと確認した?
Windows Installer は配布可能だから、単体で Riched20.dl を 配るのではなくて、Installer を使おうようにすればいいんじゃないかな
なぁ、話の流れと関係無いなら名前にレス番書くのやめないか。 読んでて話の流れがわかりにくい。
VS2005ベータでWTL使ってみた奴いる?
819 :
デフォルトの名無しさん :04/08/31 23:00
あげておこう
>>819 お前がageるたびに俺がsageてやる!
sageって書いても上がらないだけで下がるわけではないのだが 頭悪すぎ
とネタにマジレスする頭悪すぎの奴
保守派!
WTL製アプリを納品してるとか言ってた奴の宣伝か。
827 :
デフォルトの名無しさん :04/09/01 22:25
WTLなんか使わないけど ヘッダファイル読めば構造丸分かりだから OfficeXP風メニューの作り方とかぱくれてウマー
そらか・・・
>>828 要するにこのスレには昔から同じ数人しかいない
>>825 どうしてそういう発想しかできないんだ?
字汚いくせに
まったりしようや
>>827 じゃあ、Office2003 風の Look&Feel もおながいします。
漏れ的には、OfficeXP(現 .NET 2003 風)のほうが好きなんだが、
.NET 2005 は Office 2003 風になるよね・・・
834 :
デフォルトの名無しさん :04/09/02 13:21
「対応している」ではなくて、「対応する」なんだから Longhornが出たらメジャーバージョンアップを要求せずに きっちり対応してくれるって事じゃないの?
「Windows 2000/XP/Server 2003のほかLonghornにも対応するというシェアウェア」 という文脈で、Win2000やXPと同列に書いてるから今現在対応してるという意味にとるのが普通だと思う。
今出てるLonghornのβ版で動作確認したって意味じゃないのかな
ベータはまだ出てなかったような。
そういえば、WTL に XP SP2 のセキュリティの影響とか ありましたか?体験した人教えてほしいです。 (サンクとか)
WTLって単なるHファイルの集合体なわけでしょ? しかも、平文テキストで暗号化なんかもされて無いし ヘッダファイル読めばクラスの構造とか丸分かりだから ウインドウ出したりボタンの作り方とかぱくれてウマー
844 :
デフォルトの名無しさん :04/09/04 01:38
>>841 ここで聞いても該当者はいないっぽいなぁ。
CPUがNXに対応してて、かつXP SP2を入れてて、かつATL3.1製アプリを動かした場合の話だから。
仮にSP2で問題が起こったとしても、WTLのせいじゃないだろう。 薄いラッパにすぎないWTLには一切の責任がないと思うし、 問題が起きるようであればATL・MFCでもWTL以上の深刻さで大量発生しているはず。
そうだよ。ATLの話だよ。 聞いた話ではATL3.1では問題があるが、最新の7.1では修正されてるらしいんだけど実際どうなのかな。 NX対応CPU(または64bitCPU)ユーザのスレとかあるんだろうか。 まぁあったとして「このATL3.1製HelloWorldを実行してみてくれ」と頼んでも怪しんで試してくれないか。
847 :
デフォルトの名無しさん :04/09/04 13:26
ってゆーか APIの勉強くらいMFCのソースコードでも出来るだろ
☠
久々に電波発言を見た。
>>852 え?
あながち間違ってないでしょ、
>>849 は。
MFCのソース解析さえできない無能な方でつか?
MFCの問題は、ソース解析できるが安易に手がつけられないことであり、
ソース解析ができないことなどではない。
その点が理解できてない初心者が多いようだね。
ネタにマジレス、それを窘められて逆ギレ……
まぁなんというか、MFCは ス レ 違 い
ATL/WTLじゃなくてもソースは付いてるって事でしょ。 で、読めばAPIの使い方くらいは勉強になると
だれもAPIを勉強するなんて話はしてないし、
MFCはスレ違いなのに、
何の脈略もなく
>>849 みたいなこと言ってるから電波だと言われるんだ。
引き続きレスしてるから誤爆ではないと思われるが・・・
>>856 なんかもう見てらんないな。己を恥じて欲しいよ。
862 :
デフォルトの名無しさん :04/09/05 01:10
釣 り で し た
>>844-847 おお、別板で聞き込みまで、ありがとうございました。
安心して使えます。
864 :
デフォルトの名無しさん :04/09/07 03:20
あげてみるか
WTL本マダー?
866 :
デフォルトの名無しさん :04/09/09 22:58
WTL の何をしりたいのさ
俺が知らないこと
「無知の知」って奴ですな。
微妙に違う気がする
ATLインターナルは改訂版出ないのかな。
871 :
デフォルトの名無しさん :04/09/11 02:28:49
コマンドバーのボタンを押し下げた状態にしたいんですが、 どうすればいいのでしょうか?
マウスでボタンを押しつづける
>>871 そんなアプリ見たこと無い。どんな時にやるのよ?
DEPに引っかかるのは、そのソフトがillegalな処理してるだけじゃん 昔あったNTで動かないソフトと同じで、非推薦のAPI使ったり。 勝手にハード叩いたり
>>874 illegalとlegalはどうやって見分けるんだ?
thunkの疑惑は、そのままでは実行禁止とされているスタックやヒープ領域に
thunk codeを生成しているATLはどうなるんだと言うところから始まっているだけだが。
すんません。説明がわかりにくかったみたいですね。 押し下げた状態ってのはBSTATE_PRESSED??の状態で、 OpenJaneのオンライン/オフラインを切り替えるボタンみたいなスタイルです。 こういうデフォルト以外の動作をさせたい場合などは、 自前でCreateWindoew()したものをAddSimpleReBarBand()で突っ込むんでしょうか?
>>876 それならOpenJaneと同じくツールバーでやるべきだと思うが。
HWND hWndToolBar = CreateSimpleToolBarCtrl(m_hWnd, IDR_MAINFRAME, FALSE, ATL_SIMPLE_TOOLBAR_PANE_STYLE); AddSimpleReBarBand(hWndToolBar, NULL, TRUE); こんな感じで追加したツールバー上のボタンをTBSTATE_PRESSED状態にしたいのですが、 TBBUTTON構造体って直接は取得出来ませんよね? あーなんだか自己解決したみたいです。 CToolBarCtrl bar = m_hWndToolBar; これでbar.GetButtonInfo()/bar.SetButtonInfo()すればいいんですね。
最初はコマンドバーと言ってたのに本当はツールバーか・・・
>>880 そのようで…。
>>881 いやーコマンドバーってのをIEスタイルのメニューバー+ツールバーの総称だと思ってたんで、
コマンドバーのボタン=ツールバー上のボタンと認識してました。
これが混乱を招いてたのですね。
何にせよWTLらヴですよ。
普通はUISetCheckとか使うと思うけど解決したならそれでいいや。
>>883 BEGIN_UPDATE_UI_MAP(CMainFrame)
UPDATE_ELEMENT(ID_MENU1, UPDUI_MENUPOPUP | UPDUI_TOOLBAR
END_UPDATE_UI_MAP()
UISetCheck(ID_MENU, 1);
あーこっちのが全然楽っすねー。
ボタンに対してTBSTYLE_CHECKスタイルを設定しないとダメなんかと思ってたら、
設定しなくても大丈夫なんですね。
助言ありがとうです。
ツールバーを解決できなかったのは
>>653 だけか・・・
いったいどんなコード書いてるんだ・・・
>>664 もっと楽な方法があるぞ。
toolBar.Buttons[0].Checked = true;
それは何の話だ?
>>886 それはボタンの見た目を自動的に更新してくれないんじゃないか?
889 :
884 :04/09/12 02:38:26
ツールバー絡みでまた質問させてください。 CreateSimpleToolBarCtrlで作成したツールバーにコンボボックスを追加したいと思ってます。 ですがCToolBarCtrlではTBBUTTONで設定したボタンの形状しか受け付けませんよね? ReBarのバントに子ウィンドウとしてコンボボックスを追加する事は出来ますが、 そうするとボタンが乗ったツールバーを置く事ができません。 (REBARBANDINFO::hwndChild) ツールバーとコンボボックスを載せたウィンドウをReBarのhwndChildに設定したりしなければ、 混在は不可能なんでしょうか? 通常はどのような形態でツールバーとコンボボックスを一つのReBarのバンドに収めるんでしょうか?
普通は独自のツールバーを作ってその中でコンボボックスをCreateすると思う。
>>890 同じような事を考えてました。これだと結構面倒ですよねぇ。
>>891 ダミーのセパレータを置くんですね。
でもこれってバンドを動かされたらコンボボックスは自前で
MoveWindow()させないとますいんですかね。
今からちょっと出かけるんで帰ってきたらコーディングしてみます。
ありがとうございました。
じゃあ891も厨房か・・・
>>892 ツールバーの子として作るんだから、ツールバーの動きに追従するよ。
ただ、コンボボックスのnotifyメッセージとかが全部ツールバーに行くから、
それを補足したければツールバーをサブクラス化するしかない。
>>896 ・・・は?
>>889 で言ってるCreateSimpleToolBarCtrlで作ったツールバーじゃなくて、
自分でCToolBarCtrlの派生クラス作れって意味だろ。<独自のツールバー
そもそも標準のツールバーって何よ。
コモンコントロールのツールバーを元にするのは当たり前だ。
>>897 そうか?
俺は
>>891 がコモンコントロールのツールバーみたいな動作をする
ウィンドウを自作しろと言っているように受け取ったがな。
>まずは厨房
>>890 を無視することから始める。
みたいな事平気で書く奴こそ厨房だと思うが
技術の話とも関係ないし
>>890 にはっきり「ツールバーを作って」と書いてるのに、
なんでツールバーみたいな動作をするウィンドウを連想するんだ。
「独自のツールバーを作って」と言ってる。 ToolbarWindow32のインスタンスとは一言も言っていない。 都合のいいように編集して自己弁護しなくてよろし。
だから「独自のウィンドウ」じゃなくて「独自のツールバー」なんだから、 ツールバーに決まってるだろ、っつーかSDKならまだしもWTLスレだぞ。 常識で考えてCToolBarCtrlの派生だろーが。
全部ウインドウでしょ
どっちもどっちって感じだな。
>>902 なんで決まってるんですか?
ボタンを並べただけのオリジナルのバーをツールバーと呼んではいけないんですか?
>>898 の言ってることも好意的に解釈すると同じことだな。
class CMyToolbar : public CWindowImpl<CMyToolbar, CToolBarCtrl>
{
public:
DECLARE_WND_SUPERCLASS(_T("MyToolbar"), CToolBarCtrl::GetWndClassName())
コモンコントロールのツールバーみたいな動作をするウィンドウ"MyToolbar"を自作。
>>905 いけません。それを言うとボタンを並べただけのReBarもToolBarになっちゃいます。
>>907 なるほど、ツールバーとは特定の実装(ToolbarWindow32)を指すものだったのですね。
OfficeとかのMsoCommandBarや、QTやGTKのツールバー、
もっと拡大するとUI一般で言うところのツールバーと呼ばれているものはほぼ例外なくまがい物ですか。
>>908 はいはいそういうしょーもないこと言うと思った。
UI一般の話をしてるなら混同してもいいが、今の話の流れ(
>>889 の質問から)だと区別する必要がある。
911!
いつのまにか900越えか・・・
ちょっと早いけど、次スレはATLと統合しない? あっちのスレほとんど使われてないし。
>>915 そのスレの後、ATL相談室でATLとWTLを扱ってたけど、それをこのスレの
>>1 が調べもせずにここ立てちゃったんだよ。
>>918 うわっ、そこ完全に記憶から無くなってた。
すごいの引っ張り出してきたな。
>>918 そこはもう無かったことにしてもいいかもな…
HWND hWndToolBar = CreateSimpleToolBarCtrl(m_hWnd, IDR_MAINFRAME, FALSE, ATL_SIMPLE_TOOLBAR_PANE_STYLE); TBBUTTON btn = {0}; btn.iBitmap = 120; // width btn.idCommand = ID_MY_COMBOBOX; btn.fsStyle = TBSTYLE_SEP; CToolBarCtrl bar = hWndToolBar; bar.InsertButton(0, &btn); CRect rc; bar.GetItemRect(0, &rc); // fix me. m_comboBox.Create(hWndToolBar, rc, NULL, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, 0, ID_MY_COMBOBOX);
こんなに簡単に出来るとは思いませんでした。みなさんありがとうございました。 ここでコンボボックスのメッセージに疑問があります。 m_comboBoxの直接の親はhWndToolBarでありその親としてm_hWndが存在するのですが、 コンボボックスのメッセージはm_hWndのウィンドウに飛んでくるみたいです。 btn.idCommand = ID_MY_COMBOBOX; こいつが設定されていると、 ツールバーが親にメッセージを投げるのかと思いましたが btn.idCommand = 0; でもメッセージが飛んでくるようです。 ちなみにm_hWndのメッセージマップは COMMAND_HANDLER_EX(ID_MY_COMBOBOX, CBN_SELCHANGE, OnComboBoxSelchange) こんな感じになってます。
m_comboBox.Create(hWndToolBar, rc, NULL, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, 0, ID_MY_COMBOBOX); ↑こうしてるんだからID_MY_COMBOBOXのメッセージが飛んできて当然だと思うが
>>926 メッセージは親ウィンドウに届きますよね?
だとしたら
>>895 氏の言うようにhWndToolBar(ツールバー)に送られると思うのですが、
ツールバーの親であるm_hWndに飛んで来るんです。
ツールバーがメッセージをフレームにフォワードしてるだけなんじゃないのか?
すでにWTLの質問じゃないような気がするのは俺だけだろうか・・・
>>928 まあそんな感じなんでしょうね。
とりあえずよしとしときます。
>>929 発端はWTLって事で…。
>>1 の立てたwikiがいつの間にか無くなってた。
ま、予想通りの結果だな。
yahooもいつまで放置するやら・・・
結局誰も使ってないしね
無能な奴がはりきったところで、誰もついて行かないってこったな。
936 :
デフォルトの名無しさん :04/09/14 23:27:48
ということで、有能な935が何か話題を提供してみないか?
>>936 1よ、これ以上醜態を晒すな。
このスレやwiki、Yahooを見てわかるように、おまえの居場所は無い。
939 :
936 :04/09/15 02:59:20
あれ、1にされちゃった 1はさすがにもういないんじゃ?
Yahooは放置したままとんずらかよ・・・ あそこに登録してる13人っていったい・・・
CUpdateUIっ設計理念がすばらしいね。 つくづく感心させられます。
Mixinですか
944 :
デフォルトの名無しさん :04/09/16 22:07:21
WTL でマウスでドラッグ中にカーソルの座標をステータスバーに 表示したい。今 OnIdle で書いているんだけど、ドラッグ中は イベントが来ないため困っているんだけど、どうするのが スマート(WTL的)かな?
埋めますか
埋めようとしたとたんに質問かよ・・・
なんでOnIdleの中なんかににかくの? 普通にwm_mousemoveでできない理由があるのか? つうかWinプログラミングも2chも初心者の厨房が WTLなんかに手を出すんじゃねーよ
>>948 なんだよ、偉そうに。
「2chのベテラン」が格好いいと思ってるの?
>>949 格好いい訳ないだろう。
俺はWTLに関しては少なくとも初心者ではないが、
2chに関しては少なくともベテランではない。
よって、
例え俺が950ゲットしようとも、
既に存在する次スレのスレタイが如何に腐っていようとも、
俺は次スレを立てない。
>>948 このスレの住人として言わせてもらうがWTLが高度なライブラリかなにかと勘違いさせるような痛い発言はしないでくれ。
>>951 ある意味高度でしょ。MFCの将来的な姿を映していると思う。
「MFC開発者が過去の反省にたって一から作り直しますた。」って感じがする。
>>952 それと初心者を排斥するのと何の関係があるんだ。
>>951 高度なライブラリじゃないとは思うけど
Winの流儀も知らないやつが手を出すなとは思う。
IDEの支援もあるし、まずはMFCで慣れてからにしろって言いたい。
C++(特にテンプレートや多重継承)について慣れる必要はあるが、 MFCに慣れる必要は無いだろ。
別にMFCじゃなくてAPI自家でもいいけど IDEの支援が無くなるから余計なところにも多大な労力裂く事になるし。 まあ、他の処理系でも良いならいくらでも選択肢は増えるけどな。HSPとか。 今回のケースはイベントドリブンの基礎が分かってないから そんな変なコーディングしてたんだろし。
え?今回のケースはWTLのアイドル処理がWM_MOUSEMOVEを無視する仕様だから、 OnIdleでは拾えないってだけの話だろ。 なんでイベントドリブンの基礎まで話が広がるのよ。
OnIldeはMFCとWTLで該当するメッセージが違うでしょ。
ただでさえユーザーの少ないWTLなのに、初心者だからという理由で締め出そうとする意味がわからん。
WTL使ってる奴は使ってること自体に優越感を持ってるのかと勘違いされかねないから
>>948 の「初心者は手を出すな」みたいな発言はマジでやめてほしいわ。
WTLのOnIdleがWM_MOUSEMOVEを無視することを、
>>944 が知らず、ソースを調べもしなかったことに問題があるんだよ。
MFCからやれとかイベントドリブンの基礎がどうのとかは的外れ。
>>952 偉そうな割にこの発言は恥ずかしいな…
全然状況を分かってない
無視以前にドラッグ中はWM_MOUSEMOVEがメッセージキューに来ない。
>>944 カーソルを監視するコントロールが一つなら、
そのコントロールでWM_MOUSEMOVEを処理する。
そうでないなら、WTLの枠組みで処理するのは諦めて、フックでも使うのが良いかと。
>>944 簡単にやるならタイマーで監視して、変化があれば表示を更新。
難しくやるのが好きなら、フックを登録して WM_MOUSEMOVE で表示を更新。
本当に初心者じゃなくて、WTLの現在の立場や、生い立ちをちゃんと知っていれば
「MFCの将来」とか「MFC開発者が」とか言う発言は出ないはず。
個人的に一番恥ずかしいのは
>>948 >>950 だがな。
全角英数字で2chだのOnIdleなんて書きながら、
ここまで自信満々に言われるとこっちが恥ずかしい。
>>966 の補足。
「ドラッグ処理」を書いてると SetCapture したくなるケースがあるし、
外からのドラッグだと Capture されてるケースもあるので、
WM_MOUSEMOVE のハンドラはお勧めしないわけ。
このスレには以前から「SDKやMFC経験者っぽいけど、WTLは使ったこと無いんじゃないの?」と思わせるようなちょっと変な奴が紛れてる。
WTLはMFCに結構似てるよ。 WTLはまともなリファレンスが無いからMFC知ってると便利。
似てるのはクラスやメンバ関数の名前なのでMFCのリファレンスは便利だが、 だからといってMFCを初めから勉強する必要は無い。
>>971 にゃじゃねーよ。キモイ。
おまえがかわいい女の子なら許す。
WTLを操る可愛い女の子?! 付き合ってください。
978!
979!
1000!
980!
スレタイごときでそれはないだろ
ただでさえ過疎スレだしな
985 :
944 :04/09/18 01:13:56
埋まりそうで埋まらないのでこっちに。
えっと予想よりいっぱい返事をいただいてありがとうございました。
WTL の Sample にある MTPad と CodeProject の kPad あたりを
いじっててマウスカーソルの表示部の処理について気になったので
聞いてみました(どちらもドラッグ中は座標が表示されないみたい
だったので)
>>944 そうですね、マルチステータスバーは使ってます。
>>948 なんでOnIdleの中なんかににかくの?
UIUpdateStatusBar とかは OnIdle() でコールするのが普通に思えたし、
CodeProject の kPad とかもそうやってるので。
>>普通にwm_mousemoveでできない理由があるのか?
SetCapture する必要があるからっていうのと、メッセージの出力先は
ステータスバーだけにしたくないかなと思ったからです。
View の部分では現在の座標だけを公開して、OnIdle なりでビューから
座標を取得して出力したほうがいいと思ったからです。
つまりもしステータスバー以外に表示したいと思ったときに Frame の
方で簡単に切り替えられるから・・・
986 :
944 :04/09/18 01:41:36
つづきを
>>956 どの辺がイベントドリブンと関係あるのかわからなかったので教えてく
ださい。kPad とかがそういうコーディングしてて、自分的にはちょっと
へぇと思ったものですから
>>957 ,958
IDE ではドラッグ中でも行数がでるからやり方はいくつかあると
思うんだけど表示データは内部にもって、表示部(この場合 Status Bar)
を管理する Frame が適切なタイミングで View のデータを取得して書いて
くれるといいかなと思ったのです。
>>962 いえ、OnIdle の実装はソース見ました。
問題は OnIdle が来ないのだけど、この場合どういう方法で表示させる
のが WTL 的なのかな?と思いまして。
>>964 ,966,969
MTPad のほうは Window メッセージ(WM_USER+?) を使っているんですが、
ドラッグ中に大量にポストするのは、ちょっと微妙かなと思いました。
また、まさに上下にドラッグしながらスクロールするときに SetCapture()
する必要がありますよね。フックも試してみます。
最初質問するときここまで反応がもらえると思わなかったので、具体例を
出さず、返事も遅れたのでアレですが、もし、上記以外で俺だったらこうする
見たいなのがあったら教えていただければ幸いです。
連休中にいろいろ試してみます。
987 :
デフォルトの名無しさん :04/09/18 01:45:21
>>982 賛成
ちょっと変なスレだしな。オタくさいし
変なAA貼られたくらいで新スレ立ててたらきりないわ
>>988 ざっとスレを1から見直してみたけど変なAAがない。顔文字ぐらい。
にも関わらず、この中身のなさはなんなのだろうか・・・。
次スレ要らないんじゃないの?
>>989 どこの話してるのよ。
新スレの話をしてるんだが。<AA
1000!
996 :
デフォルトの名無しさん :04/09/18 02:46:35
997
998 :
デフォルトの名無しさん :04/09/18 20:44:53
WTL7.1落として入れてみたが プロジェクト作ってソース見た時点で寒気がして 速攻アンインストールした CWindowImplって...(気持ち悪すぎ 普通にCWindowImplementだろ
どっかで見たレスだな
1000?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。