ATL/WTL Part6

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2007/12/27(木) 21:20:10
3デフォルトの名無しさん:2007/12/27(木) 21:26:54
O2
4デフォルトの名無しさん:2007/12/27(木) 21:32:23
おつ
5デフォルトの名無しさん:2007/12/27(木) 21:58:48
>>1

テンプレ細かいところがさりげなく整理されてるね
6デフォルトの名無しさん:2007/12/27(木) 23:25:49
今まさにWTLのリポジトリがbviksoeたんによって更新されてるな。
atldlgs.hをいじってる模様。
CDialogBaseUnitsというクラスが追加されてる。
7デフォルトの名無しさん:2007/12/27(木) 23:47:15
CStringがあるんだから
CWにみしらてにもせりとかもWTL側で作ってしまえば。
EEとかでもヘッダ持ってくるだけで使えるんじゃないの?
8デフォルトの名無しさん:2007/12/28(金) 01:17:03
最近流行りなの?わざとかな入力にするの。
オジサン、ついていけないよ(´・ω・`)
9デフォルトの名無しさん:2007/12/28(金) 02:33:49
>>7

upよろ
10デフォルトの名無しさん:2007/12/28(金) 20:56:04
atl/wtlスレもついに6か
遅ればせながら
>>1
11デフォルトの名無しさん:2007/12/29(土) 21:22:42
あけましておめでとう〜
12デフォルトの名無しさん:2007/12/29(土) 23:39:02
全然あけてねーよ
13デフォルトの名無しさん:2007/12/30(日) 00:15:54
ネタくらいしか話題がないんだから仕方ないだろう
14デフォルトの名無しさん:2007/12/30(日) 10:37:23
なんで過疎なんだよ
15デフォルトの名無しさん:2007/12/30(日) 13:05:55
viksoeたんが頑張ってくれないから
16デフォルトの名無しさん:2008/01/01(火) 06:16:18
もうやだ
17デフォルトの名無しさん:2008/01/01(火) 23:00:24
江戸時代の触手プレイ漫画
ttp://www.geocities.co.jp/Playtown-Dice/6771/hokusai.jpg

江戸時代のオナホ・ディルド
ttp://hugo-sb.way-nifty.com/hugo_sb/imgs0411/adult_toys.jpg
18デフォルトの名無しさん:2008/01/03(木) 16:16:28
みんなどうやってWTL覚えたの?
覚えようにも本とか出てないんだよなぁ
19デフォルトの名無しさん:2008/01/03(木) 18:02:08
テンプレのサイトを読み書きすりゃそのうち手になじむよ。
とりあえずSo-SoとCodeProjectあたりをどぞー。
20デフォルトの名無しさん:2008/01/03(木) 18:52:59
本はいいからまずは整理されたドキュメントが欲しいな
21デフォルトの名無しさん:2008/01/03(木) 19:43:29
So-Soがあればドキュメントなんかほしいと思ったことはないな
22デフォルトの名無しさん:2008/01/04(金) 15:22:05
WTLってなぜMFC(のスタティックリンク)と比べて圧倒的に
バイナリサイズが小さくなるんでしょうか?
似たクラスが多いんで、そんなに変わらないような気がするのと、
ヘッダに全て記述することや、インライン・テンプレート化に
そこまでの効果があるようには思えないですし…。
23デフォルトの名無しさん:2008/01/04(金) 15:31:58
MFCはフローティングバーの実装だけで
WTLの全てのコード量を超えると思われる
24デフォルトの名無しさん:2008/01/04(金) 15:34:42
>>22
本当にMFCのコードなりクラスツリーなり見たか?
あれを見れば「WTLとそんなに変わらない」なんて言えないと思うんだが。
2522:2008/01/04(金) 17:17:18
>>23
>>24
すいません。MFCはコードを深く読んだことないです。
でも、クラスツリーというレベルでいうと、MSDNでざっとは目を
通してはいます。
ちなみに、スタティックリンクって、"アプリ側で使用していない
オブジェクトコード(未使用クラス等)はリンク時に除かれて、
バイナリコードに含まれない"と認識してるんですが、
合ってますでしょうか?
26デフォルトの名無しさん:2008/01/04(金) 18:23:51
−−−−−−−−−−−−−−−−−−−−−−−−−−
俺様用・しおり
∧_∧   
( ・∀・)< 今日はここまで読んだ      
−−−−−−−−−−−−−−−−−−−−−−−−−−
27デフォルトの名無しさん:2008/01/04(金) 19:25:37
>>25
そんなに変わらない気がするだの効果があるように思えないだの、ごたごた言うまえに
自分で試せば一発で分かる話じゃないの?

WTLのウィザードでスケルトンをビルドしてexeのファイルサイズを比較するなり
mapファイル出力して覗いてみるなりすればいいだけだと思うが。
2825:2008/01/04(金) 21:19:25
>>27
なるほど、mapファイルを見れば何か分かりそうですね。
ちょっと試してみます。ありがとうございます。
29デフォルトの名無しさん:2008/01/04(金) 22:44:22
>>28
テンプレートの仕組みさえわかれば、なんてことないと思うけどなあ
3028:2008/01/05(土) 00:47:11
手持ちのVC6でSDIスケルトンで比較してみたところ、
MFCの場合、mapファイル内で大量の依存クラス(Array・
Exception・Thread・CmdTarget等)の呼び出し(nafxcw:*.obj)
が行われるのがサイズが肥大する原因のようです。
対してWTLはウィザードで生成された*.objからしか呼び出しが
行われていないので、圧倒的にサイズが小さくなると…。

>>28
テンプレートの仕組み(コンパイル時に展開)は、頭では
理解してたつもりだったのに…orz。
31デフォルトの名無しさん:2008/01/05(土) 15:15:31
よかったね!
32デフォルトの名無しさん:2008/01/06(日) 22:08:49
Windows Desktop Manager API用のヘッダが追加されてる。
http://wtl.svn.sourceforge.net/viewvc/wtl/trunk/wtl/include/atldwm.h?revision=356&view=markup
33デフォルトの名無しさん:2008/01/06(日) 23:29:17
viksoe超がんばれ
34デフォルトの名無しさん:2008/01/06(日) 23:45:23
WTLのCDialogImplを使ったダイアログクラスをモーダルダイアログとして開いた場合に、
OnIdleイベントハンドラを使う方法ってあります?
35デフォルトの名無しさん:2008/01/06(日) 23:46:54
モーダルで......あり得ねえだろ。
36デフォルトの名無しさん:2008/01/07(月) 06:13:06
質問です。

モーダルダイアログってありますが、アプリケーション全体でモーダルなダイアログが
作れなくて困ってます。

イメージとしては、タスクトレイから複数のウィンドウが開けるんだけど、
設定ダイアログを開くと、どのウィンドウをクリックしても、
タスクトレイを右クリックしても警告音?がして、
設定ダイアログがTopにくる感じです。

なんかいい方法があったら教えてください。
37デフォルトの名無しさん:2008/01/07(月) 06:53:44
ウィンドウをディスエーブルして自力でエミュレートするしかないんじゃね?
38デフォルトの名無しさん:2008/01/08(火) 18:38:53
atlfile.hってATLの3.0にはないの?
3.0以降をてにいれるにはVSを買うしかないのかなぁ
39デフォルトの名無しさん:2008/01/08(火) 19:42:15
古いDDKに入ってなかったか?
40デフォルトの名無しさん:2008/01/08(火) 20:01:01
>>39
それは3.0
41デフォルトの名無しさん:2008/01/08(火) 23:08:45
>>40
思わずインストールして確認しちまったじゃねぇか
build 6001.17121にちゃんとatlfile.hも入ってたわ
42デフォルトの名無しさん:2008/01/15(火) 12:39:52
CAppModule _Module;なくても動くけど何か弊害はないの
43デフォルトの名無しさん:2008/01/15(火) 13:03:38
>>42
分かりやすい例をあげると、_ModuleなしでSplitterWindowとか使ってみ?落ちるから。
詳しくはヘッダ参照。
44デフォルトの名無しさん:2008/01/15(火) 20:07:06
>>43
>詳しくはヘッダ参照。
WTLを使う時はこれが冗談じゃなくなるから困るw
45デフォルトの名無しさん:2008/01/15(火) 21:49:35
いや別に冗談ではないだろ
46デフォルトの名無しさん:2008/01/16(水) 11:16:18
WTL9.0っていつ出るの?
47デフォルトの名無しさん:2008/01/16(水) 15:34:03
TCHAR用だけじゃなくてascii用とUnicode用、両方用意して欲しかったなあ・・・
48デフォルトの名無しさん:2008/01/16(水) 15:53:37
std::basic_string<TCHAR>
49デフォルトの名無しさん:2008/01/16(水) 17:22:17
CStringA → ATL
CStringW → WTL
50デフォルトの名無しさん:2008/01/16(水) 18:07:03
おー、これだ。翼の入ったやつ。これが、一番好きなんだ。ウイングガンダムだ。格好いいだろ。翼、がーっと広げてな。格好いいぞ
51デフォルトの名無しさん:2008/01/17(木) 02:27:29
WTL8ってVS2008で動くの?
前試したら動かなかったんだが。
52デフォルトの名無しさん:2008/01/17(木) 02:37:57
うご
53デフォルトの名無しさん:2008/01/17(木) 14:13:18
54デフォルトの名無しさん:2008/01/17(木) 16:12:10
55デフォルトの名無しさん:2008/01/17(木) 16:27:40
56デフォルトの名無しさん:2008/01/17(木) 23:24:54
CStringS → STL
57デフォルトの名無しさん:2008/01/19(土) 18:39:48
class CMainWindow : public CWindowImpl<CMainWindow>
こんなかんじで
MSG_WM_SYSCOMMAND(OnSysCommand);
void OnSysCommand(UINT nID, CPoint point);
なんですけど
void CMainWindow::OnSysCommand(UINT nID, CPoint point)
{
 if(nID == SC_MAXIMIZE)
 {
  // 最大化ボタンなら無視する。
  return;
 }
}
と書くと最大化ボタン以外も無視されるわけです。
ほかのボタンの場合通常の処理へ戻すにはどう書けばいいんでしょうか?
58デフォルトの名無しさん:2008/01/19(土) 18:44:47
SetMsgHandled(FALSE)

so-soあたりで CWindowImplのメッセージ処理の基本を勉強した方が良いと思う
59デフォルトの名無しさん:2008/01/19(土) 19:23:38
あー思い出した。しばらくC#のにはまってたから。

ありがとん。
60デフォルトの名無しさん:2008/01/19(土) 19:47:37
嘘だな
61デフォルトの名無しさん:2008/01/19(土) 20:30:30
 早     /::::l:::l::、:::::、:::::ヽ::、::::::::::::\:::\::::::::ヽヽ::::::ヽ   駄
 .く      /:::!::::i:::!:::ヽ:::ヽ::::::ヽ::ヽ、::::::::::\:::ヽ:::::::ヽヽ::::::',   目 
 な.     /:l::::!::::ヽ!::ヽ:::::::ヽ:::::::\:::ヽ、::::::::ヽ:::ヽ::::::::!::i:::::::!  だ 
 ん   ハ:::l:::::、::::ヽ::::\:::::\:::::::\:::`ヽ、:::ヽ::ヽ:::::!:::!:::::l
 と   /:::::::l::::::!ヽ:ヽ::::、:::::ヽ:::、:\::::: \::::::\::::!::::ヽ:!:::i:::l:l  こ
 か  !:/!:::::!::::::!::ヽ:ヽ{:::\:::ヽ::::\:::\::ヽ:::::::ヽ!:::::::}!::::l::li|   い
 し  j/:::l:::::!:、:::!::ト、:、:ヽ:::::`ヽ{、::::::\::::\{、::::::::::::::::i::!::l:l !   つ
 な    l:i:l::::i::i:、:l::lテ=-、:ヽ、_、::\_,≧ェュ、_、\:::::::::i::li::!::リ   :
 い   !ハト:{:!:i:トN{、ヒ_ラヘ、{ >、{ 'イ ヒ_ラ 》\::l::!:ト!!:l::l!     :
 と     ヽ i、ヽ:ト{、ヾ ̄"´ l!\   `" ̄"´  |::!:l::! j:ll:!
  :      !::、::::i      l             u |:::/lj/l:!リ
  :        ヾト、:!u                 j!/ j|:::リ
          ヾ!    ヽ  ‐       u /イ´lハ/
            }ト.、  -、ー-- 、__      /' !:://
             リl::l゛、  `二¨´    /  |/:/
         rー''"´ト!::i{\       /  / !:/
        / ^ヽ  ヾ!  ヽ _,,、'´    /  j/
62デフォルトの名無しさん:2008/01/19(土) 20:33:32
証明不可能なことは書かないことだな。
63デフォルトの名無しさん:2008/01/19(土) 20:42:25
おまえもな
64デフォルトの名無しさん:2008/01/19(土) 21:44:53
if((nID & 0xfff0) == SC_MAXIMIZE)じゃね
65デフォルトの名無しさん:2008/01/19(土) 22:08:28
もう答え出てるだろうが
66デフォルトの名無しさん:2008/01/22(火) 23:38:24
C#でのGUI作成すげー楽だな…
なんかいろいろショック受けた
67デフォルトの名無しさん:2008/01/22(火) 23:47:37
C#が、じゃなくてWinFormsが、だろ
68デフォルトの名無しさん:2008/01/23(水) 08:45:48
気持ちはわかる。
69デフォルトの名無しさん:2008/01/23(水) 20:01:41
俺も初めて触ったときはびっくりしたな
もう6年前になるのか
70デフォルトの名無しさん:2008/01/23(水) 20:46:01
前から思ってたけど、ここの住人って.NETも使ってるって奴が意外と多いよな。
71デフォルトの名無しさん:2008/01/24(木) 00:26:27
そりゃ、何を使うかは、時と場合によって選択するもの。
常にネイティブC++一本で行けば万事解決な訳ない。
72デフォルトの名無しさん:2008/01/24(木) 17:18:53
>>70
C#でもperlでもjavaでもアセンブラでも
何でも使うよ、要求があれば
一度も使ったことなかったけどそれで覚えた言語とか結構あるしpythonとかphpとか
でも、一番泣けたのは2003年にvb5で作って欲しいといわれた事・・・
73デフォルトの名無しさん:2008/01/24(木) 19:15:51
>>72
その案件はこのスレはともかく、VBスレの住人ですら泣きそうだな
74デフォルトの名無しさん:2008/01/25(金) 15:21:55
>>73
開発環境が自社になくて、客から開発環境インストール済みPCを借りて開発した
ベースをこっちで作ってメンテはお客さんがやるという形だったから
担当者が使える言語という事でVB5が選ばれたんだけどね
せめてVB6だったら良かったが・・・
75デフォルトの名無しさん:2008/01/26(土) 04:44:17
嫌がらせとしか思えないな。
76デフォルトの名無しさん:2008/01/30(水) 18:39:34
CAtlExceptionは勝手に飛んでくることかあ゛るの?
77デフォルトの名無しさん:2008/01/30(水) 18:44:28
マク゛ロで切り替えられるよ
78デフォルトの名無しさん:2008/01/30(水) 18:46:21
むむ。絶滅危惧種?
79デフォルトの名無しさん:2008/01/31(木) 00:07:33
throw()が付いた関数なのにAtlThrowを呼び出してるのって
_ATL_CUSTOM_THROWで独自の例外をthrowする処理に入れ替えると
m9(^Д^)プギャーーーッでは。
80デフォルトの名無しさん:2008/01/31(木) 00:18:15
古いコンパイラだと例外指定はできても実装されてなくて
普通に例外投げれたりする。
81デフォルトの名無しさん:2008/01/31(木) 08:49:22
>>79
6箇所くらいあるよな。
82デフォルトの名無しさん:2008/01/31(木) 14:56:57
VC6のATLなプロジェクトを2005でコンパイルすると
エラーでまくりで、ためしにVC2005でATLプロジェクト作ってみたら
作成されるソースがまったく違ったんですが
古いプロジェクトをコンパイルするのに何か言い方法は
ありませんでしょうか?
83デフォルトの名無しさん:2008/01/31(木) 19:59:25
1カ所変な所を見つけたら、それと同じ箇所を一括して変更。
84デフォルトの名無しさん:2008/02/03(日) 10:51:33
Microsoft、データ実行防止技術を推進する新APIを提供 : セキュリティ - Computerworld.jp
http://www.computerworld.jp/news/sec/97289.html

> Howard氏によると、新しいAPIは多くの開発者、なかでもATL(Active Template Library)の旧バージョンを使っている開発者向けのもので、アプリケーションからDEPを呼び出すことを可能にするという。
>
> より具体的には、同APIを用いることで、アプリケーションが起動中であってもDEPを有効にすることが可能になるという。従来は、DEPを使ってアプリケーションを保護するかどうかを前もって決めておく必要があった。
>
> 「開発者がATLの旧バージョンを使っている場合でも、DEPによるアプリケーション保護が可能になる。DEPは、脆弱性を突く攻撃を防ぐ優れた技術であるため、われわれは開発者がこの技術をより簡単に使えるようにした」(Howard氏)
85デフォルトの名無しさん:2008/02/03(日) 11:35:00
旧ATLで何故DEPが問題になるか良く分からないんですが、
Window制御にマシン語(thunk?)を使ってるからですか?
86デフォルトの名無しさん:2008/02/03(日) 14:43:37
そういうこと。
動的に確保したメモリ上に、クラスの各オブジェクトへのメンバ関数に飛ぶコードを構築して、それをウインドウプロシージャにしている。
メモリを実行可能に設定してなかったんじゃない。
WindowsはDEPの例外をトラップして、ATLによって構築されたっぽいコードを検地した場合は、特別に処理している。
速度を考えた設計が、今は逆に遅くなっているわけだよね。
そんなことするぐらいだったら、mapでも使ったほうがどれほど早いか。
87デフォルトの名無しさん:2008/02/03(日) 17:00:56
新ATLはthunk使わなくなる?
88デフォルトの名無しさん:2008/02/03(日) 19:04:07
VC8にいてるATLのthunkはDEP対応だから、
いまさら使わなくなる事はないんじゃない。
89デフォルトの名無しさん:2008/02/03(日) 19:05:28
>86
というか、旧ATLはふつーにLocalAllocだからねぇ。
90デフォルトの名無しさん:2008/02/07(木) 00:16:38
>>86
ってことはATLで構築されたっぽい○ウェアを書けばおけ?
91デフォルトの名無しさん:2008/02/07(木) 07:02:19
それは違うだろw
92デフォルトの名無しさん:2008/02/07(木) 19:03:12
そういうことに関しては徹底的にやるからね、MSは。
http://www.radiumsoftware.com/0406.html#040625
Compatibility (2)
93デフォルトの名無しさん:2008/02/19(火) 19:42:09
WTL9マダー?
94デフォルトの名無しさん:2008/02/19(火) 19:51:10
1日前にまたちょっとだけ更新されてるけどまだかねぇ。
95デフォルトの名無しさん:2008/02/19(火) 21:00:21
VS2008に合わせて開発して欲しいよな

そうじゃないと日本語化されないし
まあ個人でしてくれてる人いるけど
96デフォルトの名無しさん:2008/02/21(木) 18:54:16
CDoubleBufferWindowImpl
を継承して
DoPaintで描画しているのですが、

ウィンドウが最初に表示されるときに
描画がされないのですが、なぜなのでしょうか?
97デフォルトの名無しさん:2008/02/25(月) 00:19:19
だめだ、テンプレの解説サイト見てるが難しい、C++やりなおそう
98デフォルトの名無しさん:2008/02/25(月) 18:14:04
ATL/WTL始めようと思ったけど良さそうな入門書見当たらねえ
まずWinAPIやってからATL/WTL行こう…
99デフォルトの名無しさん:2008/02/25(月) 21:16:05
soはかなりわかりやすいと思うけんども。
100デフォルトの名無しさん:2008/02/25(月) 21:17:52
>>99
ごめんなさい
プロバイダのせいか特定サイト見てると回線がぶっつりいってしまって要モデム再起動になるんです
あそこもそれに引っかかってるようでorz
Wikiもたまにそうなりますしちょっとプロバイダの変更でも検討しときます
101デフォルトの名無しさん:2008/02/25(月) 21:27:55
そういう症状聞いたことあるな、専門板に質問に行ってた頃だけど
CATVか
102デフォルトの名無しさん:2008/02/25(月) 21:43:14
>>100
そんなことで謝らんでもいいわい。
なんか面倒なんだな。
103デフォルトの名無しさん:2008/02/26(火) 00:34:21
wikiってどこのwikiだ?
104デフォルトの名無しさん:2008/02/26(火) 00:44:00
色々種類あるけど例えばWikipediaなんかでもまれに引っかかる
普通のサイトも然り、条件は何年も使っててさっぱりわからん
105デフォルトの名無しさん:2008/02/26(火) 21:15:20
すみません質問です。
ダイアログのボタンIDOKをDisabled = FalseからTrueにしたいんですが
WTL::Button idok = GetDlgItem( IDOK );
までは出来たのですがここから先が分かりません。
分かる方おしえていただけますか?
106デフォルトの名無しさん:2008/02/26(火) 21:20:49
idok.EnableWindow(FALSE);
でなくて?
107デフォルトの名無しさん:2008/02/26(火) 21:21:05
>>105
idok.EnableWindow();
http://msdn2.microsoft.com/ja-jp/library/5a6y4t2b(VS.80).aspx
108デフォルトの名無しさん:2008/02/26(火) 21:44:02
>>106-107
おかげで無事出来ました。ありがとうございます。
10996:2008/02/28(木) 20:40:33
OnPaint以外で
CPaintDC使ってたのが原因みたいでした。

CClientDCに変更したら直りました。

110デフォルトの名無しさん:2008/02/28(木) 22:22:08
ATL/WTLをやるには情報の多いWinAPIをがっつりやってから入れと先輩から教わったのですが、そういうものなんでしょうか?
がっつりWinAPIをやった後それを使わずATL/WTLに進むのはやはり開発効率の違うですか?
111デフォルトの名無しさん:2008/02/28(木) 22:46:02
その質問はその先輩にすべきだと思うぞ
112デフォルトの名無しさん:2008/02/29(金) 00:04:32
>>110
ATLの入ってない無料版を渡されたんだろ?
113110:2008/02/29(金) 00:06:48
>>111
ああ、やっぱりそれが正道ってわけじゃないんですね

>>112
ATLは入っていて、とりあえずWTLも使えるようにしました
114デフォルトの名無しさん:2008/02/29(金) 00:33:46
WinAPIの仕組みを理解しておけって意味だと思う
115デフォルトの名無しさん:2008/02/29(金) 04:20:27
WTLの場合ドキュメントがあんまないので、いきなり入るとわけわからなくなる
WinAPI知ってれば想像がつくので楽
116デフォルトの名無しさん:2008/02/29(金) 08:30:27
VisualStudio(2003)で付属PlatformSDKから
最新のPlatformSDKに移行したら

それまで使ってたATL,MFC,Boost等
のlibに影響出ますか?(リビルドが必要?

$(VCInstallDir)PlatformSDK\include\prerelease
$(VCInstallDir)PlatformSDK\include
117110:2008/02/29(金) 10:01:46
>>114->>115
なるほど、何事も着実にですね、ありがとうございました
118デフォルトの名無しさん:2008/03/15(土) 21:39:17
WTLを勉強してみたいんだけど、2008 Express Editionじゃダメなんだよね?
フリー&一番新しいバージョンとなると、この組み合わせであってる?

Visual C++ 2005 Express Edition (with SP1)
Microsoft Windows Server 2003 R2 Platform SDK
WTL 8.0
119デフォルトの名無しさん:2008/03/15(土) 22:54:27
2005でも2008でもそう変わるとは思えないけど。
120デフォルトの名無しさん:2008/03/16(日) 10:07:43
WTLに2008用セットアップスクリプトが付いていないはず
自分で8.0を9.0に書き換えれば良いだけだけどな
121118:2008/03/16(日) 12:37:08
>>119,120
ありがとう
今、2008使ってるんで、あとで試してみるよ
122デフォルトの名無しさん:2008/03/18(火) 08:44:36
WTLは手にはいるけど、ATLが手に入らなく無い?
123デフォルトの名無しさん:2008/03/18(火) 09:55:26
VSインスコしたらデフォで入ってますけど。
124デフォルトの名無しさん:2008/03/18(火) 11:58:47
EEには入ってないでしょ
125デフォルトの名無しさん:2008/03/18(火) 13:37:17
>Microsoft Windows Server 2003 R2 Platform SDK

これにATL入ってたような
古いけど

MSからのリンクは切れてるけどページ自体は残ってて
ググるとMSのdownloadページが見つかったような気がする
うろ憶え・・・
126デフォルトの名無しさん:2008/03/18(火) 18:44:52
Visual Studio 2008のProとかTeamの体験版にはきっと入っているはず。
そこからファイルコピーなんて考えませんよ、DreamSpark待ちですから。
127デフォルトの名無しさん:2008/03/18(火) 21:50:29
何度か出てるネタだが、SDK落として若干の修正をすればEEでもWTLを使える。

Using WTL with Visual C++ 2005 Express Edition
ttp://www.codeproject.com/KB/wtl/WTLExpress.aspx
128デフォルトの名無しさん:2008/03/18(火) 22:02:11
コンパイルは成功しても実行時にdepで落ちる悪寒。
129デフォルトの名無しさん:2008/03/20(木) 19:54:14
質問ですが、WTLのエディットコントロールの背景色を変更したいのですが、どうすれば良いでしょうか?
やりたいことは、エディット不可(READONLY)にしておいて、背景色は白にしておきたいだけなのですが。
130デフォルトの名無しさん:2008/03/20(木) 20:17:40
>>129
MSG_OCM_CTLCOLORSTATICとかREFLECT_NOTIFICATIONSとか・・・
せっかくスレ主が参考になるサイトのURL貼ってくれてるんだから、自分で調べてから書きこしようね
131129:2008/03/20(木) 22:56:10
自分で調べた結果、分からなかったので質問しました。
MSG_OCM_CTLCOLORSTATICの具体的な説明とか、どこかに載っているのでしょうか?
申し訳ないですが私には見つけられませんでした。
132デフォルトの名無しさん:2008/03/20(木) 23:32:07
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl11-04/index.html
↑の例ではボタンだけどCEdit継承したクラスの中で指定した色の背景のブラシハンドルを返してやればいいと思うけど

親ウインドウの中で「WM_CTRLCOLOR」を処理しても同じ様な事は出来ます。
133デフォルトの名無しさん:2008/03/22(土) 01:25:12
WTL9.0っていつでんの?
134デフォルトの名無しさん:2008/03/22(土) 01:42:22
>>129

BEGIN_MSG_MAP(CColoredEditImpl)
MESSAGE_HANDLER(WM_NCPAINT, OnNcPaint)
MESSAGE_HANDLER(OCM_CTLCOLOREDIT, OnCtlColorEdit)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
135デフォルトの名無しさん:2008/03/22(土) 08:04:32
>>133
さあ。Vista周りの新機能の早期サポート期待したいならおとなしく2008のMFC使った方がいい。
最新のソースをSvnで追っかけてるが、ほとんどviksoe先生頼みだな。
136デフォルトの名無しさん:2008/03/22(土) 10:22:38
何かMSがWTL開発してた方が良かった気がしてきた
137デフォルトの名無しさん:2008/03/22(土) 10:27:17
WTLのsvnログ見ると2007/12/8に"Setup script for VC 9"と"ATL9.0 update"ってあるからsvn版だとOKなのかも。

でもログ見てると、あんまし活発じゃなさそうな気が…。
138129:2008/03/22(土) 14:33:28
どうもWTLというよりWindowsでのプログラムについて、もっと学ばねばならないようですね。
質問ばかりで申し訳ありませんが、お助け願います。

>>132
これを参考に背景色を変更することが出来ました。
MSG_OCM_CTLCOLOREDIT(OnCtlColorEdit)でメッセージを受けて、
変更したい背景色のブラシを返すようにしました。
しかしエディットボックスをREADONLYにすると、変更出来なくなりました。
CTRCOLOREDITをCTLCOLOR_STATICにしても同じでした。
何が行けないのでしょうか?
139129:2008/03/22(土) 19:53:04
自己解決しました。
CEditの継承の仕方が間違っていました…。
140デフォルトの名無しさん:2008/04/04(金) 09:41:23
error C2061: 構文エラー : 識別子 'PICONINFOEX'
ってのが出るんですが、これは一体何のエラーでしょうか。

あと、別のプロジェクトでは
fatal error RC1015: cannot open include file 'atlres.h'.
ってのが出てきて、これもコンパイルできません。
141デフォルトの名無しさん:2008/04/04(金) 10:18:25
エスパー募集じゃないなら詳しく書かないと。
VistaのSDKのインクルードパスが入ってない落ち。




あとstdafx.hにこれ入れておけ

#define _WIN32_WINNT 0x0600
143デフォルトの名無しさん:2008/04/04(金) 20:53:33
その程度のレベルの奴がWTLを使うのか世w
144デフォルトの名無しさん:2008/04/05(土) 13:35:41
>>143 そういうおまいはどの程度のレベルなんだ?
145デフォルトの名無しさん:2008/04/05(土) 23:37:07
超スーパーハカーであったとしても人として終わってるは確実。
146デフォルトの名無しさん:2008/04/06(日) 06:40:07
>>140のエラー程度で一々質問するようじゃやっぱり駄目だろ。
147デフォルトの名無しさん:2008/04/06(日) 06:52:41
まずネタ提供にしては稚拙過ぎるからありえないとして
推論思考に先天的な欠陥を抱えているとか色々可能性があるから
全く触らないならばまだしも弄るのは良くないと思うよ。
148デフォルトの名無しさん:2008/04/06(日) 07:31:05
もう保守以外でこのライブラリは使ってやらない。
まあ確かに、Vistaでの描画がちと怪しいな
150デフォルトの名無しさん:2008/04/06(日) 14:13:10
ダンゴさんの見識の広さには恐れ入るところがあるな
あぼーん
152デフォルトの名無しさん:2008/04/06(日) 17:42:09
例えば、WTLのヘッダの中からCRectとかみたいな
ATLの不要なものだけコピペして使ってもいいの?
全部使えよ
154デフォルトの名無しさん:2008/04/06(日) 18:27:43
さすがダンゴさん胴体着陸してもなんともないぜ!
155デフォルトの名無しさん:2008/04/06(日) 19:47:53
154 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
156デフォルトの名無しさん:2008/04/06(日) 20:35:46
>>152 MS-PL
157デフォルトの名無しさん:2008/04/12(土) 16:43:58
Implってなんの略ですか?
Implementation(実装)
159デフォルトの名無しさん:2008/04/12(土) 21:13:41
implication long
二つの64ビット値をビット毎に包含演算した結果を返す
160デフォルトの名無しさん:2008/04/12(土) 23:27:03
Implementation(実装) だと思ってた。
159 すげーな
161デフォルトの名無しさん:2008/04/13(日) 13:44:55
2008EEだけ落とすとATLついてないんだけど2005もインストールしなきゃだめ?
どっかにATLだけ単体で落っこちてないかな
2005EE入れても同じだ
たしかDDKに3.xのヘッダが付いてた。






てかStdくらいけちるなよ。
実はアップグレードでおkなので実質2万
163デフォルトの名無しさん:2008/04/13(日) 13:57:07
164デフォルトの名無しさん:2008/04/14(月) 02:04:50
VC2005EE+PSDK2003+WTL のめんどうな設定を自動でおこなうvbsスクリプト
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30239
165デフォルトの名無しさん:2008/04/17(木) 15:42:19
Windows Driver Kitには入ってないの?
入ってる
167デフォルトの名無しさん:2008/04/17(木) 22:48:49
それよりも2008 TeamSystemやProfessionalの体験版でも入れたほうがいいかもしれない。
168デフォルトの名無しさん:2008/04/18(金) 00:07:02
>>166 >>167
ありがとう。
169デフォルトの名無しさん:2008/04/18(金) 19:59:56
atlconv.h の CA2W を使いたいんだけど,

error C3861: 'CA2W': 識別子が見つかりませんでした

って怒られる.include フォルダ見たけど,これは WTL8.0 には無いよね?
ATL7.0 以降みたいなんだけど,これはどこかで手に入るの?製品版?

Window2000
Visual C++ 2005 express edition
Microsoft Platform SDK for Windows Server 2003 R2
170デフォルトの名無しさん:2008/04/18(金) 20:06:11
なんで直前のスレの流れさえ読まないのか不思議
171デフォルトの名無しさん:2008/04/18(金) 21:23:45
ごめん,直前の話は ATL3.x だと思ってた…

Visual Studio 2005 Professional Edition 90 日間評価版

てのをちょっと入れてみます.
172デフォルトの名無しさん:2008/04/18(金) 22:05:44
>>169DDKに入っとるよ
173デフォルトの名無しさん:2008/04/19(土) 01:01:34
>>172
Windows Server 2003 SP1 DDK ダウンロードしてみたけど ATL3.0 だった (´・ω・`)

評価版まだ落ちてこない…
174デフォルトの名無しさん:2008/04/19(土) 08:19:05
>>173
内の環境では
C:\WinDDK\6001.17121\inc\crt\atl71
に入ってる
WTLの開発2ヶ月くらい停まってるな。

Vista完全対応はあきらめるしかないのか?
176デフォルトの名無しさん:2008/04/24(木) 21:51:44
たしかViksoe氏がVS2008とvista
177デフォルトの名無しさん:2008/04/24(木) 21:53:05
途中で送信してもた・・
逝ってくる
178デフォルトの名無しさん:2008/04/25(金) 00:09:38
つか全体的にネタないよな。
本家もそうだしviksoe.dkもSoさんとこも最近は。
179デフォルトの名無しさん:2008/05/04(日) 22:56:22
質問です。CWindow::Create()で
::CreateWindow(..., CW_USEDEFAULT, CW_USEDEFAULT, w, h, ...)
と同等のことやりたい場合、RECTはどう設定すれば良いですか?

単純に{ CW_USEDEFAULT, CW_USEDEFAULT, w, h }と設定した場合、
うまく反映されないようです(非常に小さなウィンドウが出ます)
180179:2008/05/04(日) 22:58:28
補足、少々言葉足らずでした。
要は幅、高さのみ指定でウィンドウ位置は
システムデフォルトにしたかっただけです。

どうかご指導いただければ幸いです。
182デフォルトの名無しさん:2008/05/04(日) 23:14:14
RECT rc = CWindow::rcDefault;
rc.right = rc.left + w;
rc.bottom = rc.top + h;
Create(NULL, rc);

俺はこうしてるが、正解かどうかは知らん
183デフォルトの名無しさん:2008/05/04(日) 23:19:18
ソース見ると幅と高さをright-left, bottom-topで求めてるな。
184デフォルトの名無しさん:2008/05/04(日) 23:23:02
だったら
{ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT + w, CW_USEDEFAULT + h }
にしたらいいんじゃね?
185デフォルトの名無しさん:2008/05/04(日) 23:30:42
...,CRect( rcDefault ) + CRect(0,0,w,h),...
というのは如何
186179:2008/05/04(日) 23:56:48
>>184でうまくできました。
皆様ありがとうございます。
187デフォルトの名無しさん:2008/05/23(金) 03:54:44
WTLのappwizは、なんでFrameWndのスタイルに、
WS_CLIPCHILDRENを指定してないんだ?
ツールバーがちらつくじゃん。

まぁ、付ければいいんだけどさあ。
188デフォルトの名無しさん:2008/05/23(金) 06:55:21
今まで知らなくてずっとWS_EX_COMPOSIT付けてたよ・・・
189デフォルトの名無しさん:2008/05/23(金) 13:47:03
Win32のウィザードでも指定されないから、
MSの方針で、知らん奴はリサイズで点滅するアプリ作っとけって事だろうな。
190デフォルトの名無しさん:2008/05/23(金) 20:47:02
>>187
それどこのことよ
うちのはSvn最新だけど
191デフォルトの名無しさん:2008/05/23(金) 22:50:28
CFrameWindowImplに余計な指定しなければATL::CFrameWinTraitsが
適用されてWS_CLIPCHILDRENで作成されるはずだが。
192デフォルトの名無しさん:2008/06/02(月) 22:30:53
CAxDialogImpl を使って ダイアログに WebBrowser を貼り付けるといますが
表示しているHTMLにTABを押しても次のコントロールへ移動してくれません。

対応するにはどうしたらよいでしょうか?
193デフォルトの名無しさん:2008/06/03(火) 01:38:09
TAB押していったらHTMLのリンクを移動して
最後のリンクまできたら次のコントロールに移動するんじゃなかったっけ
194デフォルトの名無しさん:2008/06/06(金) 09:59:15
ATLのシンプルオブジェクトウィザードで、スレッドモデルを選択しますが、
シングルとアパートメントの違いってなんですか?
両方ともSTAですよね。
シングルはCOM初期化のプライマリスレッドでのみ実行されるとあるので、
アパートメントの方は、プライマリスレッド以外に作られるのかと思いました。
でも、両者のウィザードが生成するコードに違いが見あたりません。
FinalContruct()で、GetCurrentThreadId()を呼んで、スレッドIDを見ましたが、
両方ともプライマリスレッドのIDでした。
違いはあるんでしょうか?
195デフォルトの名無しさん:2008/06/06(金) 19:56:04
アパートメントだと、オブジェクトを作成したスレッドとは別のスレッドからメソッドを呼ぶと、
メッセージキューを利用してマーシャリングされて呼ばれる事になるが、
シングルの場合は、作成したスレッド以外からの呼び出しは不可。
ただし、アパートメントの場合マーシャリング時は引数の生存期間が変わってくるため、
それを意識した実装をしておく必要がある。

って感じでいいんだっけ?
新MFCのRibbonとかテーマ機能がWTLで使えるようになるのはいつですか?><
197デフォルトの名無しさん:2008/06/06(金) 20:06:14
もう少し待って!
198デフォルトの名無しさん:2008/06/06(金) 20:17:07
自分で作ってパッチを送ればいいんじゃね?
199デフォルトの名無しさん:2008/06/06(金) 20:58:50
>>194-195
シングルは一番最初に作られたSTA(メインSTA)にしか属せない。
アパートメントはどのSTAにも属せる。

クラスの静的メンバのようなインスタンス間で共有されるデータに対して
排他制御が必要かどうかという違いのはず。

http://msdn.microsoft.com/en-us/library/ms681753(VS.85).aspx
200194:2008/06/07(土) 22:51:46
あれかな、シングルだと、COMサーバー自信がプライマリスレッドからしか作れない、ということだろうか??
クライアントから作ることはできないのかな。
201デフォルトの名無しさん:2008/06/09(月) 17:38:30
VS2003+WTL7.5で開発していたアプリケーションを
VS2008+WTL8.0でビルドし直したら、ビジュアルスタイルが
適用されないんだけど、何が原因だろう?

埋め込まれているマニフェストを確認すると、ちゃんと
Microsoft.Windows.Common-Controlsの項目が入っているんだが。
VS2005からだと思うが、stdafx.hのpragmaで指定するようになった。

こういうやつ

#if defined _M_IX86
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='31BF3856AD364E35' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='31BF3856AD364E35' language='*'\"")
#elif defined _M_X64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken=publicKeyToken='31BF3856AD364E35'language='*'\"")
#else
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='31BF3856AD364E35' language='*'\"")
#endif


とりあえず空でWTLプロジェクト作ってstdafx.hの該当行コピれ。
203デフォルトの名無しさん:2008/06/09(月) 19:47:30
IE8が出てくると、ATLの需要が増えるような希ガス。
まだまだ、ActiveX多いし。
Vistaだとリバーの描画が崩れるのよね
たいがいやわ
205デフォルトの名無しさん:2008/06/09(月) 20:10:57
>>202
いや、それは自分で書いて追加してあるんだけど、駄目だった。

理由は分からないが、一応自己解決。
プロパティマネージャから「Upgrade From VC 7.1」を削除したら
何故かビジュアルスタイルが適用された。
その後、再現しようと思って古いプロジェクトファイルからもう一度
自動変換させたら、Upgrade From VC 7.1があっても適用される。
わけがわからんw

途中で一度PCを再起動したから、その影響?
Vistaだとマニフェストがキャッシュされるとかいう話があるから、
それが悪さしてたのかな?
206デフォルトの名無しさん:2008/06/16(月) 14:36:36
CCommandBarCtrlのボタンの無効化をしたいのですが、
MFCのUPDATE_COMMAND_UI
のような機能はあるのでしょうか?

EnableButtonだけではダメでした・・・
207206:2008/06/16(月) 16:27:35
BEGIN_UPDATE_UI_MAPの後に
UPDATE_ELEMENT(ID_TEST, UPDUI_MENUPOPUP|UPDUI_TOOLBAR)

OnIdleで
UIEnable(ID_TEST,FALSE);

で出来ました。
208デフォルトの名無しさん:2008/06/16(月) 17:45:38
うん、それでできると思った。
209デフォルトの名無しさん:2008/06/16(月) 19:46:53
じゃあ俺もそう思った
210デフォルトの名無しさん:2008/06/17(火) 00:24:09
ツールバーのボタンをチェックスタイルにするには
どうすればできますか?

SetButtonInfoを試してみたのですが、
GetButtonInfoが失敗して撃沈。
TBUTTON系のAPIが失敗するのも妙
何でだろ・・・
211210:2008/06/17(火) 17:31:18
UPDATE_ELEMENT(ID_TEST,UPDUI_MENUPOPUP | UPDUI_TOOLBAR)
を追加
UISetCheck
で変更でできました。
212デフォルトの名無しさん:2008/06/17(火) 17:47:47
うん、それでできると思った。
213デフォルトの名無しさん:2008/06/17(火) 22:20:21
じゃあ俺もそう思った
214デフォルトの名無しさん:2008/06/17(火) 22:30:44
質問はしょぼいけど、ちゃんと解決方法も書くのはえらいな
215デフォルトの名無しさん:2008/06/18(水) 02:09:41
自己解決しました^^
216デフォルトの名無しさん:2008/06/18(水) 09:22:30
↑ぐぐりまくって、おお、ようやく求めてた質問みっけた!
で、このオチだと泣けるよな。
217デフォルトの名無しさん:2008/06/19(木) 00:25:48
218デフォルトの名無しさん:2008/06/19(木) 01:12:28
eGUI++
エグイぷらぷら?
イヤン
219デフォルトの名無しさん:2008/06/19(木) 02:43:14
流行るとは思えん。
ポータブルじゃないのに、
わざわざまったく異なる思想のコードを書きたいとは思わんし、
あと、識別子の命名がやたらに省略しててキモい。


つーか今どきstd::stringを使っていて、
しかもWindowsネイティブ限定とか、ふざけているとしか思えん。
Viksoe先生頼みじゃ先細りだしな
ATLはともかく
221デフォルトの名無しさん:2008/06/19(木) 14:46:43
>>219
一応、こんな記述になっているようだが。

#include <string>
#ifdef UNICODE
typedef std::wstring string;
#else
typedef std::string string;
#endif
きたねぇ実装だな。
_tstringよかマシだが
223デフォルトの名無しさん:2008/06/19(木) 19:30:00
>>221
なんじゃそりゃ。
ひでぇな。
224デフォルトの名無しさん:2008/06/19(木) 20:47:16
そんなにCStringが好きか
225デフォルトの名無しさん:2008/06/19(木) 20:56:11
std::stringの仕様が嫌いなだけだ
ATL::CStringAとATL::CStringWは好き。
ANSIとUNICODEの変換が楽すぎる
227デフォルトの名無しさん:2008/06/19(木) 21:32:47
昔はUSES_CONVERSIONでT2CWとか書いてたんだよなあ。
テンプレートベースになって、明示的にCStringAとCStringWが使い分けられるのが最強すぎる。
228デフォルトの名無しさん:2008/06/19(木) 22:59:02
そんな便利だとは知らなかった。
VC++6時代と同じ使い方しかしてなかった。
このスレ見てて良かった。
229デフォルトの名無しさん:2008/06/19(木) 23:18:28
つーかC++なんだから、TCHARなんて使わずオーバーロードしてくれりゃいいのに
MFC/ATL/WTLって手抜きだよな
230デフォルトの名無しさん:2008/06/19(木) 23:48:00
WTLはTCHARしかないんだよなあ
CStringも他のウィンドウ関連のAPIも

たまにANSIとUNICODE両方用意して欲しいと思うことがある
231デフォルトの名無しさん:2008/06/20(金) 06:53:26
は?
232デフォルトの名無しさん:2008/06/20(金) 07:54:27
std:exceptionってUNICODEないよね
233デフォルトの名無しさん:2008/06/20(金) 08:24:23
STLの質問はSTLスレで。
eGUI++の愚痴は作者の掲示板で。
>>230
あるじゃん。

ま、ATL::CStringのほうが便利だな。
ATLに依存しないコピー実装もCode Projectあたりにあったと思うが。
235デフォルトの名無しさん:2008/06/20(金) 08:42:05
>>232
なかったはず。おかげで例外に文字列渡すときは、いちいちW->A変換してる。
236230:2008/06/21(土) 20:39:45
>>234
atlmisc.h見てみたらTCHARしか使ってないように見えたけど…
238デフォルトの名無しさん:2008/06/21(土) 22:55:47
話がずれてねーか?
メソッドなりのインタフェースが基本的にTCHARベースしかないのが
アレだって話じゃねーの

APIはCリンケージだからWとAの二つがあってマクロで切り替えだが
明示的に指定することも常に可能
WTLはC++だからオーバーロードが本当はベストだけど
TCHAR版の「一つ」しかない点でCのAPIにすら劣るよなって話
C++の標準規格策定より遙か前に出来たMFCの命名規則をそのまま引きずってるので
多くは求めない方が良いかと
240デフォルトの名無しさん:2008/06/21(土) 23:19:13
WTLぐらいうっすぃラッパーなら徹底的にオーバーロードメソッドこしらえるよりも
必要なとこだけAPI直呼びすりゃいいんじゃねーの? でまかり通りそうだがな。
241デフォルトの名無しさん:2008/06/21(土) 23:27:57
>>239
いや、テンプレートで型パラメータ化しろって言ってんじゃないよ
「オーバーロード」だぞ?

いつからあると思ってんだよ
242デフォルトの名無しさん:2008/06/21(土) 23:36:50
TCHARで困るって、今時Win9x系に対応するつもりか?
まあMSLU使えば、それなりに何とかできるかもしれんが。
243デフォルトの名無しさん:2008/06/21(土) 23:53:01
>>242
TCHARオンリーは、TCHAR強要してるのと同じだろ
さもなくば-DUNICODE前提、とかいうソースになる

LPCSTR, LPCWSTRのオーバーライドがありゃ、CStringだろうがCStringWだろうが
CStringAだろうがstd::stringだろうがstd::wstringだろうが何でもそのまま使える
「正しい」ソースとしてだ
そしてAPIプログラミングならそれは可能だ

TCHARオンリーでちゃんとやりたきゃ、CA2Tとかそういう下らない変換テンプレートを
いつもいつも使うことになる
どっちがいいか、わかりきってるじゃないか

MSは単にMFCやATLを手抜きして、ユーザに手間を押し付けてるだけなんだよ
244242:2008/06/22(日) 01:08:36
CString()で囲むのがそんなに面倒なのかね。
その一手間を惜しむが故に、文字列絡みの全メソッドにオーバーロードを付けるのか?
それこそナンセンスじゃね?
245デフォルトの名無しさん:2008/06/22(日) 01:14:57
>>244
マイクロソフト製品のユーザ数を理解しろよ
それが「製品」であることもな
それがよくデザインされていればされていれば、皆が幸せになれる

CString()で囲むだって?
手間なだけでなく、それが必要でないとき(例えば実際にはW->W変換であるような
場合)でもコンストラクタとコピーが実行されて確実に効率が落ちるじゃないか
冗談だろ
246デフォルトの名無しさん:2008/06/22(日) 02:30:23
もう自前で何とかするのに慣れっこ。
ここで不満言ってどうする
msdnフォーラムでぼやけ。
中の人が聞いてくれるかも知れないよ



ああWTLの場合はsf.netに参加すればコミットできるか
248デフォルトの名無しさん:2008/06/22(日) 08:25:15
必然性が分からんな
249デフォルトの名無しさん:2008/06/22(日) 14:57:06
ダイアログに貼り付けたツリーコントロールに
WM_LBUTTONDOWNハンドラを追加するにはどうすればよいのでしょうか?

ダイアログにWM_LBUTTONDOWNを追加してみたのですが、
ツリーコントロールをクリックしても
ハンドラが呼ばれません。(その外だと呼ばれるのです)
手動でやれば?
コントロールIDとイベントID入れて自前でハンドラ作成。

まさかWindowsプログラム自体はじめて?
251249:2008/06/22(日) 16:03:52
NOTIFY_HANDLER(IDC_TREE1, NM_CLICK, OnNMClickTree1)
を追加

LRESULT OnNMClickTree1(int /*idCtrl*/, LPNMHDR pNMHDR, BOOL& /*bHandled*/);
でできました。
252デフォルトの名無しさん:2008/06/22(日) 16:05:25
うん、それでできると思った。
じゃあ俺もそう思った
253デフォルトの名無しさん:2008/06/22(日) 18:01:19
俺はサブクラス化だと思った
254デフォルトの名無しさん:2008/06/22(日) 18:08:41
ATLらしくCContainedWindowもあり
255デフォルトの名無しさん:2008/06/24(火) 14:59:33
MFCとWTLどっちが楽なんですか
256デフォルトの名無しさん:2008/06/24(火) 19:32:19
使ってみれば分かる
257デフォルトの名無しさん:2008/06/25(水) 09:20:37
WTLってかATLもだけど、ライブラリ化するときは割と気をつけないといけない。
内部的な仕組み理解せずにやってると、
リソースやメッセージポンプがEXEとDLLで違うとこを指したりして
おかしくなってはまったり。
MFCはそういう心配はあまりない。
258デフォルトの名無しさん:2008/06/25(水) 21:42:46
MFCが圧倒的に楽なのでは。WTLは仕事には使えないだろうし…。
259デフォルトの名無しさん:2008/06/26(木) 00:28:49
2008でMFCがだいぶ進化してる。
260デフォルトの名無しさん:2008/06/26(木) 23:34:51
で、またWinSxSにでかいDLLが追加と
261デフォルトの名無しさん:2008/07/06(日) 11:37:55
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/view12/index.html
の様に枠のないフォームを作り、class nameを入れて
別フォームではカスタムコントロールとして上記で作ったフォームを入れれば
割合簡単に独自定義のフォームが作れると思ったのですが、
class nameを設定することが出来ません。このプロパティは一体何なのでしょうか。

やりたいことはPhotoshopの様なレイヤー管理パレットを作りたいのですが……
262デフォルトの名無しさん:2008/07/07(月) 22:59:46
WTL9.0まだー?
263デフォルトの名無しさん:2008/07/08(火) 00:41:05
現状のリポジトリのバージョンでいいからとりあえず9.0版として出してほしいね
264デフォルトの名無しさん:2008/07/10(木) 21:36:38
ATL9.0まだー?
ただで配布しれ。金はびた一文出したくない
265デフォルトの名無しさん:2008/07/10(木) 23:05:23
体験版インスコしてatlmfcだけコピーしてくればいいお
266デフォルトの名無しさん:2008/07/11(金) 20:36:24
    ┌─────金・女 ────┐
    │                  .↓
 - - - - - - - - - - -裏- - - - - - - - - - - -
┌──────┐        ┌──────┐
│ アンパンマン ├─攻撃→│ バイキンマン │
└──────┘        └───┬──┘
    ↑                        │
  感謝・金                攻撃
   │                        ↓
┌─┴────────────────┐
│           市  民             ..│
└──────────────────┘
267デフォルトの名無しさん:2008/07/21(月) 22:35:47
ひさーーーーしぶりにリポジトリがちょっと更新されてるな。
でもbugfixか・・・
268デフォルトの名無しさん:2008/08/02(土) 13:14:55
WindowsXP上のVS2005でWTL8.0、ATL7.0使って
マルチスレッドSDIにしてCFileDialogなり自前でファイル選択ダイアログ表示させて
右クリックでコンテキストメニュー出したあとにダイアログ閉じると
プログラム終了するときになってヒープメモリのエラーが出るんだけれどどうすりゃいいんでしょう?
普通のSDIやMFCだと出ないし_CrtSetDbgFlagと_CrtCheckMemory使っても検出されない。
269デフォルトの名無しさん:2008/08/03(日) 06:28:43
>>268

うちは通常動作では問題はないけど、AppVerifierでBasicのテストをすると同様にヒープエラーが発生。
ただいま原因調査中。

ちなみに環境はVS2008Pro/WTL8.0ね。
270デフォルトの名無しさん:2008/08/09(土) 22:27:57
WTLとboostとResEditインスコしたけど、他にコレ入れとけってのありますか
271デフォルトの名無しさん:2008/08/10(日) 21:59:53
プロパティーシートを使っているのですが、ページからシートのメンバ変数に
アクセスするには、どうするのがWTLらしい記述になりますか?

272デフォルトの名無しさん:2008/08/11(月) 01:17:59
WTLあんま関係ないが、IPropertyPageを実装する
273デフォルトの名無しさん:2008/09/20(土) 22:20:57
Google Chrome にWTLのコードがあるらしいじゃないか。
274デフォルトの名無しさん:2008/09/20(土) 23:53:51
ATLかと思ったが
275デフォルトの名無しさん:2008/09/21(日) 10:07:41
ATLだったらオープンソースにできないじゃない
276デフォルトの名無しさん:2008/09/21(日) 18:54:22
ATLを使わないWTLってどこにあんの?
あるなら欲しいな。
277デフォルトの名無しさん:2008/09/21(日) 19:17:36
自分も欲しい。
278デフォルトの名無しさん:2008/09/21(日) 20:57:43
>>276
探せばいろいろ出てきそうではあるが一例

WTL++
ttp://code.google.com/p/wtl-plus/

WTL++ is not based on MFC, ATL or WTL.

これは一人でやってるぽい?ついさっき更新されてた
279,,・´∀`・,,)っ-○◎●:2008/09/21(日) 21:26:12
GPLwwwwww
クラステンプレートなんだからもっと緩いライセンスであるべきだろ
280277:2008/09/21(日) 21:41:35
>>278
サンクスです。ライセンスがGPLなのは、団子氏の指摘通りちょっと残念だけど、
ヘッダとライブラリを読むようにすれば、VC++2005EEでもビルドできるので、
完全フリーな開発が可能という点では、オープンソースプロジェクトなんかで
結構使えるかも。
281デフォルトの名無しさん:2008/09/21(日) 22:31:12
使えねーよwwwwww
GPLうぇpおpぽあqwせdrftghyじゅきぉpwwwww
282デフォルトの名無しさん:2008/09/21(日) 23:23:07
ごめん・・・悪かった。
283デフォルトの名無しさん:2008/09/25(木) 05:41:00
>>280

そのページにはGPL3ってかいてるけど、
wtl.zipダウンロードして中をみると
wtlなヘッダ.h全てに

// This is a part of the Windows Template Library Plus.
// All rights reserved.
// The code and information is provided "as-is" without
// warranty of any kind, either expressed or implied.

ってあって、ちょっとみたかぎりでは同梱物にGPLのような
記述なさそうな気がする. GPLなライセンステキスト無いし
(ただ、うちの環境ではsetup.exe実行したらハングして
動かなかったので、そちらで何かライセンス表示されてたら
スマソ)

GPL3にして変更が追いついてないだけなのかGPL3が誤記なのか
わかんないけど
284デフォルトの名無しさん:2008/09/25(木) 07:16:33
>>283
その部分はWTLからのコピペな気がするw
というか全体的に(ry
285デフォルトの名無しさん:2008/09/25(木) 09:25:32
もし、WTLからのコピペが一部でもあれば、CPLからGPLへのリライセンスで違法な気がする…。ちょっと危ないかも。
286デフォルトの名無しさん:2008/09/25(木) 11:35:47
287デフォルトの名無しさん:2008/09/25(木) 19:59:13
>>285
ATLからのコピペ改変もあるような。。。
288デフォルトの名無しさん:2008/09/26(金) 14:38:27
I am WTL++'s father
"All rights reserved." is removed from all header files
289デフォルトの名無しさん:2008/09/26(金) 18:49:41
そもそもエキスプレスにATLが入っていれば何の問題もないんだが
290デフォルトの名無しさん:2008/09/26(金) 18:50:53
そもそもエキスプレスにATLが入っていれば何の問題もないんだが
291デフォルトの名無しさん:2008/09/26(金) 18:57:08
そもそもエキスプレスにATLが入っていれば何の問題もないんだが
292,,・´∀`・,,)っ-○◎●:2008/09/26(金) 20:18:44
三度も言うほど大事なことでもないぞ
293デフォルトの名無しさん:2008/10/13(月) 20:31:56
warning C4996: '_vswprintf': This function or variable may be unsafe. Consider using vswprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 9.0\vc\include\wchar.h(773) : '_vswprintf' の宣言を確認してください。

このエラーは消えないの?
294デフォルトの名無しさん:2008/10/13(月) 20:47:14
>>293
どうしたら消えるかそこに書いてあるだろ。
295デフォルトの名無しさん:2008/10/13(月) 20:53:36
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif // _SECURE_ATL
296デフォルトの名無しさん:2008/10/14(火) 20:38:58
確かATL9では_SECURE_ATLは使われなくなったはず
297デフォルトの名無しさん:2008/10/14(火) 23:45:55
>>293
『_vswprintf』 : この関数または変数はおそらく安全ではないです。代わりにvswprintf_sを使うことを検討してください。この警告を無視するには、_CTR_SECURE_NO_WARNINGSを使ってください。詳細はオンラインヘルプをご覧ください。

って書いてるように見える。 _SECURE_ATLの話は関係ない話?
298デフォルトの名無しさん:2008/10/15(水) 02:26:58
>>297
問題部分のソース

#if _SECURE_ATL && !defined(_ATL_MIN_CRT) && !defined(_WIN32_WCE)
  return _vstprintf_s(lpstrBuff, cchBuff, lpstrFormat, args);
#else
  cchBuff; // Avoid unused argument warning
  return _vstprintf(lpstrBuff, lpstrFormat, args);
#endif
299デフォルトの名無しさん:2008/10/15(水) 02:37:53
いや293はwchar.hで発生してるのか。
298はatlapp.hのやつだ。
俺のとこじゃwchar.hでwarningは出ないな。
300デフォルトの名無しさん:2008/10/15(水) 02:44:42
俺のとこだとwchar.hの問題のとこは、直前に
#pragma warning(disable:4141 4996)
があるから、C4996は出ないんだが。

ひょっとして293はSP1当ててないVS2008なのかな?
301デフォルトの名無しさん:2008/10/15(水) 08:56:42
WTLのやつでしよ
302デフォルトの名無しさん:2008/10/17(金) 15:07:08
wtl使いたいけど、express editionを使っていて、sdkについているatlが使いたくないという趣味的な理由で、
wtlを使うために、atlから必要な部分だけを引っこ抜いて、
wtlも、その引っこ抜いたやつを使うように修正した場合、
1. コンパイルしたexeファイルを配布したらライセンス上アウトなのか
2. 引っこ抜いたり、修正したソースコードを配布したらライセンス上アウトなのか
3. すでにそういう行為をした時点でライセンス上アウトなのか
って、教えてもらえないですか。
手元にはatlから引っこ抜いてきたソースと、wtlをそれを使えるよう修正にしたソースと、
それをコンパイルしたexeがあるという仮定です。
大変な作業だけど。
303デフォルトの名無しさん:2008/10/17(金) 15:19:52
WTL自体の修正はソース開示義務が発生するのでは?
ATLはライセンス違反になりそう。
304デフォルトの名無しさん:2008/10/17(金) 19:47:15
それで問題にならないのなら誰も苦労してないって
305デフォルトの名無しさん:2008/10/17(金) 23:56:15
Ms-PLだと変更の公開義務は無いよ。
306デフォルトの名無しさん:2008/10/18(土) 15:57:30
ATL依存箇所を、ソース見ずに一から作り直せば良いんかな。CWindowImplとか…。
ちなみに、ATL3時代のCSimpleArrayやCSimpleMapは結構好きだったんだけど、
msvcpxx.dll非依存で代替になるオープンソースのクラスってなんかあんだろか?
307デフォルトの名無しさん:2008/10/18(土) 18:30:02
STL
308デフォルトの名無しさん:2008/10/18(土) 19:23:33
>307
STLとは相性が悪かった記憶が…
309デフォルトの名無しさん:2008/10/18(土) 20:07:42
stlベースにライブラリ作るとかありえないわ
気持ち悪すぎて
310306:2008/10/18(土) 20:58:18
VCでSTL使うと、msvcpxx.dll依存になってしまうんで…。
実際に使うのって、vectorとmapくらいだし、iteratorの仕組みも
個人的にはあまり好きになれないんで…。
311デフォルトの名無しさん:2008/10/18(土) 21:08:15
依存になっちまうのは、お前がそう設定しているからだろ
静的リンクしろ
312デフォルトの名無しさん:2008/10/18(土) 21:41:03
STLがダサイのは同意
313デフォルトの名無しさん:2008/10/18(土) 21:49:47
STL=くさっとる
WTL=おわっとる
ATL=にあっとる
314デフォルトの名無しさん:2008/10/18(土) 21:49:55
std::cout << "そんなことないよ。" << std::endl



     *      *
  *  ウソです  +
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
315デフォルトの名無しさん:2008/10/18(土) 22:21:28
STL使いまくりの自分は異端なんかね。
algorithm, functionalを中心にすべて必須だわ。
316デフォルトの名無しさん:2008/10/18(土) 22:27:08
むしろ設計が異端
317デフォルトの名無しさん:2008/10/18(土) 22:32:00
このスレ的には>>315は異端。
一般的にはこのスレが異端。
318デフォルトの名無しさん:2008/10/18(土) 22:40:08
そうは言うけどMFCってSTLより古いんだぜ
それと基本仕様を共有するATLはイケてるんじゃね?
319デフォルトの名無しさん:2008/10/18(土) 23:02:30
>>314
iostreamはどちらかというとSTL関係ない。
320デフォルトの名無しさん:2008/10/18(土) 23:14:00
勝手にスレの総意にするなよw
STL無しなんてありえんわ
321,,・´∀`・,,)っ-○◎●:2008/10/18(土) 23:29:44
C++ライブラリのiostreamじゃない部分は全てSTLだと思ってるんだが
vector<bool>を特殊扱いしてるのは言語処理系としての機能だっけ?
322デフォルトの名無しさん:2008/10/18(土) 23:55:34
STLはオブジェクト指向的にアリエナイ
323,,・´∀`・,,)っ-○◎●:2008/10/18(土) 23:58:00
C++はマルチパラダイム言語だから。

オブジェクト指向を追求したCの派生言語はあくまでObjective-C
324デフォルトの名無しさん:2008/10/19(日) 00:00:12
>>321
いや、言語規格として要求している。
そんなvector<bool>もコンテナの要件を満たしてイテレータが使えるんだからSTLの一部と言って差し支えないと思う。

>>323後半
あるいはJavaも
325デフォルトの名無しさん:2008/10/19(日) 00:02:49
stringはSTLじゃないよね
326デフォルトの名無しさん:2008/10/19(日) 00:22:57
コンテナに入らないスマートポインタが平然と放置されてたり
327デフォルトの名無しさん:2008/10/19(日) 00:24:44
でもCComPtrとCComQIPtrは入れられるよね?
328デフォルトの名無しさん:2008/10/19(日) 01:17:43
fun^10×int^40=Ir2
329デフォルトの名無しさん:2008/10/19(日) 07:43:47
auto_ptrはたまにreleaseが必要な時に使う
330デフォルトの名無しさん:2008/10/20(月) 15:29:00
>>302
2だけがだめだろう
1はどうでもいいし、3などモラルの問題
てか、みんなやっとる
331デフォルトの名無しさん:2008/10/20(月) 15:53:12
>>330
MS-PLだから、2もOKなんですね
332デフォルトの名無しさん:2008/10/20(月) 15:54:51
ATLもMS-PL?
333,,・´∀`・,,)っ-●◎○:2008/10/21(火) 03:20:17
だからStandardの3万くらい払え
334デフォルトの名無しさん:2008/10/22(水) 19:59:46
Upgでいいんだから、19800円
335デフォルトの名無しさん:2008/10/22(水) 21:51:01
いやだ、ソフトに金を払うという行為自体が気に食わない
336デフォルトの名無しさん:2008/10/22(水) 22:04:45
犬糞でもつかってろ
337デフォルトの名無しさん:2008/11/03(月) 09:27:37
wtl8.0でwin98サポートさせたいんだけど
サクッっと変えられちゃうフラグあります?
338デフォルトの名無しさん:2008/11/09(日) 02:25:53
Microsoft Windows Server 2003 R2 Platform SDK
落としてATL3.0ヘッダを探したけど、
atlwin.hとかatlctrls.hとかがどこにもない。
atlbase.hはあるけど・・・どこにあるの?
339デフォルトの名無しさん:2008/11/09(日) 08:25:55
SDKに入っているわけないだろw
DDKの方にあるんだよ
340デフォルトの名無しさん:2008/11/09(日) 14:17:57
>>339
ごめんsrcフォルダばっか見てた・・・。
Includeフォルダインスコしてみたら、あったわ。
341デフォルトの名無しさん:2008/11/09(日) 16:09:34
>>337
windows.hやatl,wtlのヘッダ読み込む前に
(コマンドラインで-Dするのもヘッダで#defineするのでも)
#define WINVER       0x0400
#define _WIN32_WINNT   0x0400
等のバージョン・マクロを定義して
win98にもある機能の範囲で使って作ってる分には動いたよ。
(どんなバージョンマクロがどれくらいあるのかは知らない)

wtl8.0よりむしろ、コンパイラ(ライブラリ、ランタイム)でwin98用の
exe作れるかが問題で、vs2003は大丈夫だったけど
vs2008はダメかも (少なくともスタンダードではダメだった)
342デフォルトの名無しさん:2008/11/09(日) 20:15:02
_WIN32_WINDOWS
_WIN32_IE
も設定してみたら?
343デフォルトの名無しさん:2008/11/11(火) 19:43:55
WTLなんとかしてVS2008ProfessionalEditionで使えるようになりませんか?
344デフォルトの名無しさん:2008/11/11(火) 20:00:25
なる
345,,・´∀`・,,)っ-●◎○:2008/11/11(火) 23:16:02
普通に使える。
AppWizardなら2005用のスクリプトを数行書き換えるだけでそのままインスコ
346デフォルトの名無しさん:2008/11/18(火) 20:59:47
あーWTLインスコに半日近くかかってしまった(´・д・`)
ディレクトリ設定がどこにあるのかわからんでvsvars32.batとインスコスクリプトをずっと弄ってたという
347デフォルトの名無しさん:2008/11/20(木) 13:16:07
VC2008 から ATL がWindows98でサポートされなくなった・・・
なんでだよおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

「うにこーどで全部書けて素敵ね☆」
じゃねええええええええええ!!!!!!!!!!!!
348デフォルトの名無しさん:2008/11/20(木) 13:20:25
ATL関係なく、VC2008自体がWindows 98で動くコードを出力できない。
349デフォルトの名無しさん:2008/11/20(木) 13:37:53
VC2008の出力する実行ファイルに特に特殊な点は無いし
普通にWindows98で動きそうだが
ランタイムライブラリなどは修正する必要があるかもしれないが
350デフォルトの名無しさん:2008/11/20(木) 14:00:20
>>349
リンカの/SUBSYSTEMでの最低バージョンの省略時の値が5.0になっていて、
しかも5.0未満の値を指定するとエラーになる。
そのため、4.1であるWindows 98では実行できないというわけ。
351デフォルトの名無しさん:2008/11/20(木) 14:02:07
VC2008 のコンパイラが勝手に埋め込んでるバージョンチェック処理って
マクロとかでつぶせないもんかね
あのメッセージさえ回避できれば動きそうじゃね?
M$のマーケティングかも知れないけど。
352デフォルトの名無しさん:2008/11/20(木) 14:11:50
バイナリエディタでそこを書き換えてみたが、たしか別のエラー吐いて駄目だった。
めんどくさくなって、それ以上原因追究しなかったけどさ。
353デフォルトの名無しさん:2008/11/20(木) 14:16:04
CRTをスタティックリンクしたところで
CRT自体が9x系サポートしてねえんじゃねえの

そこまでして2008に9x系向けのコードを吐かせたい理由がわからんが
MS自体が既にサポートしてねえOSなのに
354デフォルトの名無しさん:2008/11/20(木) 14:34:13
サポート終わっても意外と98ユーザいるじゃねーか
(開発としてはマジ迷惑な話だが)
98SEとかMeとかのユーザ向けにはVS2008はアウトか。

Meはさすがにいねーかww
355,,・´∀`・,,)っ-○◎●:2008/11/20(木) 22:40:38
MSDN会員ならダウングレード権があるから6.0でも使えよ
でも.NET 2002は黒歴史な。Intelコンパイラも放置してる失敗作。パネェ
356デフォルトの名無しさん:2008/11/22(土) 19:20:37
俺はずっとパネェ黒歴史を使ってきてたのか・・・or2
357デフォルトの名無しさん:2008/11/22(土) 23:04:15
本当は 2003 相当のものを出したかったんだろうが、
あまりにも間が空きすぎるのを避けて、
無理に 2002 に出したんだろうなあって感じの代物。
C++ 規格準拠率低いし。
358デフォルトの名無しさん:2008/11/23(日) 19:00:31
Vistaに似てるな
359デフォルトの名無しさん:2008/12/02(火) 14:34:23
>>355
2003でWTL使ってる漏れは勝ち組
360,,・´∀`・,,)っ-●◎○:2008/12/03(水) 00:04:19
.NET 2003は/G6 /G7とかの最適化オプションがあった最後のバージョン
361デフォルトの名無しさん:2008/12/03(水) 01:10:49
/Oa /Owもね!
362デフォルトの名無しさん:2008/12/03(水) 02:06:04
ATL3.0で
GetCurrentMessage()用のm_pCurrentMsgはどこで更新されてるの?
ソース見るけどどこにもない
363デフォルトの名無しさん:2008/12/03(水) 03:10:05
あとサンクをHeapAllocなりVirtualAllocで動的確保してるのはなぜ?
インスタンスが増えるだけメモリ使用量増えるから?
364デフォルトの名無しさん:2008/12/03(水) 11:52:59
>>362
CWindowImplBaseT< TBase, TWinTraits >::WindowProc
>>363
DEP対策
365デフォルトの名無しさん:2008/12/03(水) 18:10:42
>>364
つまりProcessWindowMessage内でしか有効でないわけですね?

>DEP対策
それはHeapAllocからVirtualAllocへの置き換えでしょ
_stdcallthunkを静的ではなく動的にAllocしてるのは何故かなってことです
366デフォルトの名無しさん:2008/12/03(水) 19:03:33
>>365
ウィンドウのインスタンスがどこに置かれてもいいようにじゃないの?
DEP以前でも、実行不可領域にインスタンス作られる可能性はあるし。
367デフォルトの名無しさん:2008/12/03(水) 20:08:37
>>365
サンクはウィンドウごとに作らないといけないため。
サンクにはそれぞれthisが刻み込まれていて、他のウィンドウには使いまわせない。
368デフォルトの名無しさん:2008/12/04(木) 02:18:45
>>366
なるほど。
このトリッキーさ(マシン語埋め込み)はまた将来的にDEPみたいな問題が起こることはないですかね
このサンクの部分をC++だけで実現できないものかな

>>367
いやそれはクラスのメンバであれば関係ないでしょ
369デフォルトの名無しさん:2008/12/05(金) 06:12:12
>368
>このサンクの部分をC++だけで実現できないものかな
無理。

>いやそれはクラスのメンバであれば関係ないでしょ
意味不明。
370デフォルトの名無しさん:2008/12/05(金) 10:31:59
>>369
> >いやそれはクラスのメンバであれば関係ないでしょ
> 意味不明。

ウィンドウクラスは何故_stdcallthunkを直接メンバにせず
_stdcallthunkを動的に作成するCDynamicStdCallThunkをメンバにしているのか
ってことだと思う。
371デフォルトの名無しさん:2008/12/08(月) 22:12:17
少なくともATL3.0では、メンバに
CWndProcThunkを直接持ってたヨ
372デフォルトの名無しさん:2008/12/08(月) 22:58:35
dep!
373デフォルトの名無しさん:2008/12/09(火) 00:23:09
>>371
CWndProcThunkは関係ないヨ
_stdcallthunkの話でしょ
374デフォルトの名無しさん:2008/12/09(火) 01:35:05
メンバとして直接もってたATL3.0(CWndProcThunk._WndProcThunk
がコード領域)がDEPに見事に引っかかるから、dyncamicに
持つようにしたんでそ
375デフォルトの名無しさん:2008/12/09(火) 02:10:49
3ループ目突入か・・・
376デフォルトの名無しさん:2008/12/09(火) 02:23:19
あえてループにつっこむ
>>374
DEP関係はHeapAlloc→VirtualAllocなんだって
377デフォルトの名無しさん:2008/12/13(土) 11:48:28
1ヶ月ぶりに見に来てみましたよっと サンクの件でループとな
サンクで一度はアタマこんがらがるのは、俺だけでいい。とか思ってたが
そうでもなかったようだ
378デフォルトの名無しさん:2008/12/13(土) 13:28:08
誰かまとめてくれよ。馬鹿にはついていけん。
379デフォルトの名無しさん:2008/12/16(火) 00:19:30
基本的に馬鹿な質問ですが教えてください。
(クラスの)代替メッセージマップって意味あるの?
どのようなときに使うのですか?
継承の利点が生かせてないような・・・?
380デフォルトの名無しさん:2008/12/16(火) 00:29:29
381デフォルトの名無しさん:2008/12/16(火) 00:48:46
>>380
そうですか。どうもです。
なんかそこのリンク先解説や、MSDNの解説などを見ていても
あえてCHAIN_MSG_MAP_ALTを使う利点が曖昧だなーっと思っていたので・・・
382デフォルトの名無しさん:2008/12/16(火) 21:00:43
> CHAIN_MSG_MAP_ALT
WTLのコントロールで使われてるような使い方をすると思う
383,,・´∀`・,,)っ-●◎○:2008/12/17(水) 01:24:12
テンプレートの縛りの中でポリモーフィズムもどきを実現するために必要
384デフォルトの名無しさん:2009/01/04(日) 00:52:03
CMDIFrameWindowImplをメインウィンドウにしているときに子ウィンドウを最大化すると
メインウィンドウのタイトルに " - [子ウィンドウのタイトル]" が自動的につくようですが、
これをやめさせるにはどうしたらいいんでしょうか?
385デフォルトの名無しさん:2009/01/07(水) 18:53:30
Windowの上にDialogを表示したくて
SetWindowPosを使ったのですが、
すぐにWindowの下にDialogが行ってしまいます。
WTL内部でZオーダーを自動更新しているのかな?
386デフォルトの名無しさん:2009/01/07(水) 19:15:01
んなわけないと思うが
387デフォルトの名無しさん:2009/01/07(水) 19:20:15
>>385
そのウインドウをオーナーにしたらまずいの?
388デフォルトの名無しさん:2009/01/07(水) 21:58:35
Dialog::Createへ渡すハンドルを
Viewから
MainFrame
に変更したらうまくいきました。
389デフォルトの名無しさん:2009/01/14(水) 00:03:57
ドッキングウィンドウ実現するのって結構難しいんだな・・
実装に苦戦中
390デフォルトの名無しさん:2009/01/14(水) 00:13:14
viksoe氏の作りかけ版を参考にすればいいと思う
391デフォルトの名無しさん:2009/01/14(水) 18:58:48
WTL使ってまともに完成したソフトってあるの?
392デフォルトの名無しさん:2009/01/14(水) 19:05:30
その質問に何の意味があるのか
393デフォルトの名無しさん:2009/01/14(水) 19:17:24
どのくらい使われてるのか知りたい
394デフォルトの名無しさん:2009/01/14(水) 19:25:41
Donut
395デフォルトの名無しさん:2009/01/14(水) 20:09:51
忘れたけどどこかの商用ソフトも使ってた
396デフォルトの名無しさん:2009/01/14(水) 21:34:55
Windows Movie Makerとかもそうじゃなかったっけ。
あと、VMWareの画面がWTLっぽかった気がする。
(ウィンドウクラス名がそれっぽかった)
397デフォルトの名無しさん:2009/01/15(木) 20:56:31
WTL8+VC2008EEのAppWizardで作ったSDI+リストビューのリストの表示が
オーナーデータにしてもすげーレスポンス悪いんだけど何故かさっぱりわからねぇ
サンプルのWTLExplorerをビルドしたリスト部分はサクサクなのに

と思って弄ってたら
SetFont(AtlGetDefaultGuiFont());
これが原因だった
DEFAULT_GUI_FONTってデザインのどこのフォントだっけ?
398デフォルトの名無しさん:2009/01/15(木) 22:42:56
どれにも該当しない盲腸。
399デフォルトの名無しさん:2009/01/16(金) 21:01:13
Google Chrome にもWTLの一部が。
Chromeが使用してるライブラリの一覧にちゃんとWTLも書かれてる。
http://code.google.com/intl/ja/chromium/terms.html
400デフォルトの名無しさん:2009/01/17(土) 20:52:55
400
401デフォルトの名無しさん:2009/01/18(日) 11:28:42
>>399
何を今更
他プラットフォームに移植するの場合の盲腸だから
もうすぐGTKに取って代わられるって言うのに
402,,・´∀`・,,)っ-●◎○:2009/01/18(日) 11:30:40
GTK?w
Windowsでの安定動作は絶望的だなオイ

まだQtのほうがわかる
ってKonquerorやんけ。
403デフォルトの名無しさん:2009/01/18(日) 13:53:04
むしろGoogleがWTLを他プラットフォームに移植してくれ!w
404デフォルトの名無しさん:2009/01/18(日) 14:22:46
アホの子のスレか
405,,・´∀`・,,)っ-○◎●:2009/01/18(日) 15:51:18
GoogleがGIMP for Win32を安定化してくれるんならそれはそれで歓迎したい。

現実にはこうじゃねーの?

Win32: WTL
Linuxその他: GTK
MacOS: Cocoa or Carbon

流石にGTKオンリーは無いと思うよ。
MacOSネイティブの(X11を介さない)GTKって無いからその時点で導入の敷居が高くなっちゃう。

Chromeはシンプルで取っつきやすいUIによってFirefoxとの差別化をはかってるのに
たとえOSXのディスクに入ってるオプションであるにしても、標準でインストールされないX11を
わざわざインストールさせる手間を煩わせたら元も子もない。
とりあえずマカーでごめんなさい。


>>403
俺がWTLで作ったアプリもWineでそこそこ動いてるらしいんで(画面の再描画周りが多少怪しいが)
いっそWineベースでいいんじゃないかなと思ってる。
406,,・´∀`・,,)っ-○◎●:2009/01/18(日) 15:53:31
大ボケしてた。
MacOS XネイティブのGTKって既にあったんだね。
http://journal.mycom.co.jp/news/2008/09/26/009/
407デフォルトの名無しさん:2009/01/18(日) 16:36:24
akatsukiさんの記事(ATL/WTL 2)が追加されているのに今気付いた…orz。
XmlLiteとかも面白そうだしちょっと試してみるべ。
http://home.att.ne.jp/banana/akatsuki/top/main.html
408デフォルトの名無しさん:2009/01/21(水) 13:23:23
そこなんで1と2で分かれてるの
ほとんど内容一緒なんだからページを1つにして
注釈でこのバージョンではこう、ってやってくれたほうが・・・
そのほうが作りやすかったろうに1から作り直してるね
409デフォルトの名無しさん:2009/01/21(水) 13:30:32
VC6.0版と、.NET以降のIDE+AppWizardに合わせた版だろ
書籍の改訂と同じ感覚だな。
逆に、プロだなと思った。
410デフォルトの名無しさん:2009/01/21(水) 16:40:49
プログラマ的にはVCS上でブランチ切ったりする感覚
411デフォルトの名無しさん:2009/01/21(水) 17:36:21
>>408
漏れは今の方がすっきりしてて好きだわ
今と昔の違いを知る必要がなければ,新規は2版見ればいいし,
昔通りやりたければ1版見るだけでいいし
412デフォルトの名無しさん:2009/01/21(水) 19:54:42
各バージョンの変更点まで2つに分けてあるのはご愛嬌?

ところでWTLで、ATLのNotifyHandlerのidCtrl引数が消えてるのは
>This identifier is not guaranteed to be unique. by MSDN
のため?
413デフォルトの名無しさん:2009/01/26(月) 14:34:58
リストビューのちらつきが気になるのでCDoubleBufferWindowImplを基底クラスに指定しましたが改善されません。
何とかならないでしょうか・・・
414デフォルトの名無しさん:2009/01/26(月) 19:20:24
最後の手段だが
WS_EX_COMPOSITED
415デフォルトの名無しさん:2009/01/28(水) 07:45:34
T *pT = static_cast<T*>(this);
pT->メンバ関数;
↑これよくみるけどなんですか?普通に
メンバ関数;
だめなの?
416デフォルトの名無しさん:2009/01/28(水) 09:02:19
だめ。仮想関数のオーバーヘッドを排除するためだし。
417デフォルトの名無しさん:2009/01/28(水) 10:30:47
単純に親クラスのメンバにアクセスしても
オーバーヘッドが起こるの?
418デフォルトの名無しさん:2009/01/28(水) 10:51:55
何言ってるのか分からないけど、仮想関数を使わず派生クラスのメンバ関数呼んで貰う為のものだから。
419デフォルトの名無しさん:2009/01/28(水) 12:32:01
たとえばCFrameWindowImplのUpdateLayoutなんかもこのやり方ですよね。(WTL7.5)
これも仮想関数対策?
420デフォルトの名無しさん:2009/01/28(水) 17:10:40
>>415
キャストする前のthisのクラスには、そのメンバ関数が存在しない。要するにこんな感じ。
class Foo {
void f() {
static_cast<Bar*>(this)->g();
}
};
class Bar : Foo {
void g() {}
};
Bar b;
b.f();
421デフォルトの名無しさん:2009/01/28(水) 19:21:24
>>419
そのままだと基底クラスから派生クラスのメソッドは呼べねぇんだよ
422デフォルトの名無しさん:2009/01/28(水) 19:48:04
まあ汚いコードではある。
423デフォルトの名無しさん:2009/01/28(水) 20:05:20
しかし、CRTPという名前が付く程度には知られている。
424デフォルトの名無しさん:2009/01/28(水) 21:29:10
みなさんありがとう。>>416 >>418 >>420 >>421 >>422 >>423
仮想関数の代わりが出来るというのが理解できました
例えばCFrameWindowImpl::OnSizeのUpdateLayoutや
CFrameWindowImpl::CreateExのCreateなどなどは
自作の派生クラス(例えばMyWindow)でオーバーライド可能→
基底クラスCFrameWindowImplから派生クラスMyWindowのUpdateLayoutメソッドが呼べる
てことですね?でこれがCRTP
425デフォルトの名無しさん:2009/01/28(水) 21:37:21
少し違う。
CFrameWindowImpl 自体は UpdateLayout などを持たない。
だからオーバーライドではない。
UpdateLayout が定義されていれば OnSize が呼べるし、
UpdateLayout が定義されていなければ OnSize が呼べない。
426デフォルトの名無しさん:2009/01/28(水) 21:50:43
>>425
続いてありがとうございます。ということは
1.CFrameWindowImplBase::UpdateLayoutを
2.オーバーライドしたMyWindow::UpdateLayoutを
3.CFrameWindowImpl::OnSize内にて(自動で)呼び出せる機能
って解釈が正しい?
常にCFrameWindowImplBase::UpdateLayout使うだけならCRTPはイラナイと思うし・・・
427デフォルトの名無しさん:2009/01/28(水) 22:31:22
428デフォルトの名無しさん:2009/01/30(金) 02:12:47
CRTPを使って実現したい事は、仮想関数による多相とほぼ同じ。
違うのはCRTPが静的に(コンパイル時に)解決されるため
子クラスの型、内部型を扱える事。
その帰結として子クラスの関数呼び出しに仮想関数呼び出しの
オーバーヘッドが掛からない利点がある。
欠点は当然ながら動的な(実行時の)多相性を得られない事だ。
429デフォルトの名無しさん:2009/01/30(金) 18:47:08
430デフォルトの名無しさん:2009/02/06(金) 18:40:16
CButtonTとかCStaticTとかに指定するTBaseはCWindow以外にありえるんですか?
431デフォルトの名無しさん:2009/02/06(金) 19:02:15
自作
432デフォルトの名無しさん:2009/02/11(水) 00:42:32
>430
CWindowの派生クラス。
CButtonTとかでオーバーライドしてる挙動は変えずに
カスタムしたい場合に使ったり。
433デフォルトの名無しさん:2009/03/02(月) 11:33:49
VS2005で、CA2WやCA2CTなどはコンパイル通るのに、
CA2CWやCW2CAだと「識別子が見つかりませんでした」と言われるんですけど、
なにか別途インクルードするものでもありますか?
434デフォルトの名無しさん:2009/03/12(木) 11:22:23
AppWizardは入るけど、WTLHelperは2008では動かんのう。。。
435デフォルトの名無しさん:2009/03/12(木) 23:29:28
viksoe
436デフォルトの名無しさん:2009/04/05(日) 23:03:28
こやつめw
437デフォルトの名無しさん:2009/04/05(日) 23:37:30
なるほど
438デフォルトの名無しさん:2009/04/21(火) 21:18:25
so-soさんがモバイルコーナー始めてるよ
みんな見てる?
439デフォルトの名無しさん:2009/04/21(火) 21:42:51
WinMoでも使えるのか
機会があれば使ってみたいなぁ
440デフォルトの名無しさん:2009/04/22(水) 07:39:17
うぃんもとか変な略し方するんじゃねえ
441デフォルトの名無しさん:2009/04/22(水) 08:18:49
>>440

俺は439じゃないが、海外だとWinMoって略す事が多いんだよ。

ついでなので。

WindowsMobile でも普通に使える。
実際WTLで作って、アプリをリリースしたし。
442デフォルトの名無しさん:2009/04/23(木) 01:06:42
WTL って、サポートされていないライブラリってだけで、
商用で使ってもかなり満足できる性能・機能なのに、
なかなか国内では率先して使ってる企業ないよな。
ATL はそこそこ知ってる奴いるけど、WTL って何?ばかり。
443デフォルトの名無しさん:2009/04/23(木) 07:55:23
そうですね
444デフォルトの名無しさん:2009/04/23(木) 12:21:09
WTL使ってるてどうやったら確かめられるの?
MFCはDLL読むからわかるけど。
445デフォルトの名無しさん:2009/04/23(木) 18:55:21
そうですね
446デフォルトの名無しさん:2009/04/24(金) 23:17:28
まともに日本語化されたドキュメントが存在しない時点で終わってる気がする

447デフォルトの名無しさん:2009/04/24(金) 23:24:52
ソース解読汁
448デフォルトの名無しさん:2009/04/25(土) 23:52:22
WTL使おうにもexpressにATLがないのが致命的
449 ◆0uxK91AxII :2009/04/25(土) 23:57:06
>>448
WTL80/readme.htm
450デフォルトの名無しさん:2009/05/05(火) 16:52:15
ちょっと質問です。
frame と view の切り分けってどうしてる?
view が超便利なのは、リソースの Dialog をそのまま拾えて、
さらに frame が使用する view を切り替えて1つのフレームで
複数のウィンドウを作れるところが魅力だけど、
view の上に TAB を置いたり、view で切り替えたくない固定の
コントロールを frame 上におきたい場合、どういう考え方で重ねてる?

frame の上に frame 、さらにその上に frame で view を乗せる、見たいにできるのか、
frame の上に複数の view を重ねたり並べたりするのが常套手段なのか、
メッセージの伝播をどうやるのかが分からなくて、暗礁に乗り上げています。

普通はこうやる、的なアドバイスをください。
駄文ですいません。
451デフォルトの名無しさん:2009/05/05(火) 21:14:22
>>450
普通はどうやるかは知らないけど、frameの上のメインのviewに、複数の子viewを重ねたり並べたりしてます。
452450:2009/05/06(水) 09:31:50
>>451
なるほど、view は重ねて処理できるのか。
ちなみに、メッセージの受け渡しはどのようにやってますか?
frame→view のように PreTrancelateMessage を実装してもうまく動かないので、
なにかテクニックがあるかと思うのですが、どのようにやればいいんでしょうか。
453デフォルトの名無しさん:2009/05/07(木) 21:46:39
>>452
メッセージの受け渡しは、viewの親子関係でツリー状にやってます。
PreTrancelateMessageは、親viewのクラスのから子viewのクラスのを呼び出すようになってます。
複雑なメッセージ処理はしてないので、役に立たなかったらスマソ

454デフォルトの名無しさん:2009/05/09(土) 20:49:31
455デフォルトの名無しさん:2009/05/09(土) 21:51:47
バージョン番号変えただけ・・・?
456デフォルトの名無しさん:2009/05/09(土) 22:28:54
457デフォルトの名無しさん:2009/05/09(土) 23:27:21
Changes:
- changed version number
- updated CPL link in headers
- fixed warning for _vstprintf
- added wizard setup programs for VS2008
458デフォルトの名無しさん:2009/05/10(日) 09:54:17
- added wizard setup programs for VS2008

遅すぎるわw
459デフォルトの名無しさん:2009/05/10(日) 21:34:55
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/appendixc19/index.html
いっしょうけんめい載せてくれてる
460デフォルトの名無しさん:2009/05/12(火) 00:23:39

CScrollWindowImplさんはどうやってスクロールバーを表示させてるのでしょうか
WS_VSCROLLとか見当たらないですが
461デフォルトの名無しさん:2009/05/12(火) 03:11:11
スタイルについてなくても
SetScrollInfo(SB_HORZ, ...
とかやれば表示される
462デフォルトの名無しさん:2009/05/12(火) 22:44:50
>>461
そうなんだ!!
若干スレ違いでしたねアリガトウ
463デフォルトの名無しさん:2009/05/17(日) 22:03:05
ちょっと細かいとこなんだけど、たまたま使ってて見てみたら
CCustomWaitCursorって親でLoadCursorして子でLoadImageしてるけどいいの?
464デフォルトの名無しさん:2009/05/27(水) 21:11:33
VS2003にてATLコントロールを作成してるんですが、
メソッド追加ウィザードのパラメータの属性のoutとretvalが無効になっていて
指定出来ない理由が全くわかりません。

どなたか教えてください。
465デフォルトの名無しさん:2009/05/31(日) 00:52:50
>>463
システムカーソルをロードしてるだけだから問題ないと思う
466デフォルトの名無しさん:2009/05/31(日) 17:34:03
>>465
どうもありがとう
467デフォルトの名無しさん:2009/06/14(日) 23:58:47
クラス名 + T
クラス名 + Impl
この命名規則もしくは意味を誰か詳しい方教えてください・・・・
468デフォルトの名無しさん:2009/06/15(月) 06:24:14
template implement
469デフォルトの名無しさん:2009/06/23(火) 07:17:05
CFrameWindowImplを継承したクラスで、メンバーにスプリッタウィンドウを入れ、OnCreate()内で
m_hWndClient = m_splitter.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
m_splitter.SetSplitterExtendStyle(SPLIT_RIGHTALIGNED);
m_splitter.SetSplitterPosPct(75);
としてみたところ、ウィンドウ枠をドラッグしてサイズを変更した際に左ペインのサイズが突然最小になってしまいました。
何か対処法はありませんか?
470デフォルトの名無しさん:2009/06/23(火) 23:57:23
UpdateLayoutをしないといけません
471469:2009/06/24(水) 14:34:08
UpdateLayoutを実行しましたがうまくいきませんでした。ただ、スプリッタウィンドウの初期位置が適当な値になれば良かったので、GetClientRect()を使ってクライアント領域サイズを取得し、SetSplitterPos()で設定することにしました。
472デフォルトの名無しさん:2009/06/24(水) 22:10:09
むう、m_hWndClient に代入した後でUpdateLayoutすれば上手くいきそうな気がするけどなあ
473デフォルトの名無しさん:2009/06/25(木) 07:36:51
他の場所に問題があるんだろう
474デフォルトの名無しさん:2009/06/25(木) 07:43:30
ペインがスプリッタの子ウィンドウになっていないとか
475デフォルトの名無しさん:2009/06/25(木) 09:06:41
UpdateLayout()を*呼んでから*SetSplitterPos()呼んでないんじゃね?
476デフォルトの名無しさん:2009/06/25(木) 09:40:15
もっと!もっと!
477デフォルトの名無しさん:2009/07/04(土) 07:04:23
WTL環境作り段階のものです
VSC++ 9.0、WTL81_9127(setup90x)、Microsoft Windows Server 2003 R2 Platform SDK、
WDK SP1 for Windows Server 2008(6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso)
をインスコしインクルード&ファイルパスへの関連付けもしました。いろんな場所を見てstdafx.hをいじったりしましたがお手上げです。
1>stdafx.obj : error LNK2001: 外部シンボル "__forceAtlDllManifest" は未解決です。
1>ok.obj : error LNK2001: 外部シンボル "__forceAtlDllManifest" は未解決です。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlCallTermFunc@4 が関数 "public: void __thiscall ATL::CAtlModule::Term(void)" (?Term@CAtlModule@ATL@@QAEXXZ) で参照されました。
478デフォルトの名無しさん:2009/07/04(土) 07:05:28
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlWinModuleAddCreateWndData@12 が関数 "public: void __thiscall ATL::CAtlWinModule::AddCreateWndData
(struct ATL::_AtlCreateWndData *,void *)" (?AddCreateWndData@CAtlWinModule@ATL@@QAEXPAU_AtlCreateWndData@2@PAX@Z) で参照されました。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlWinModuleExtractCreateWndData@4 が関数 "public: void * __thiscall ATL::CAtlWinModule::ExtractCreateWndData(void)"
(?ExtractCreateWndData@CAtlWinModule@ATL@@QAEPAXXZ) で参照されました。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlUpdateRegistryFromResourceD@20 が関数 "public: long __stdcall ATL::CAtlModule::UpdateRegistryFromResourceDHelper
(wchar_t const *,int,struct ATL::_ATL_REGMAP_ENTRY *)" (?UpdateRegistryFromResourceDHelper@CAtlModule@ATL@@QAGJPB_WHPAU_ATL_REGMAP_ENTRY@2@@Z) で参照されました。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlCreateRegistrar@4 が関数 "public: long __stdcall ATL::CAtlModule::UpdateRegistryFromResourceDHelper
(wchar_t const *,int,struct ATL::_ATL_REGMAP_ENTRY *)" (?UpdateRegistryFromResourceDHelper@CAtlModule@ATL@@QAGJPB_WHPAU_ATL_REGMAP_ENTRY@2@@Z) で参照されました。
1>Debug\ok.exe : fatal error LNK1120: 外部参照 6 が未解決です。
1>ok - エラー 8、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
原因がわかられるのでしたらよろしくお願いします。
479デフォルトの名無しさん:2009/07/04(土) 17:44:38
>>477
素直にSTD以上のエディションを買え。
480デフォルトの名無しさん:2009/07/04(土) 22:15:53
Expの話だったのかよ
481デフォルトの名無しさん:2009/07/04(土) 22:47:09
> VSC++ 9.0
482デフォルトの名無しさん:2009/07/05(日) 22:20:24
アップグレード版はインストール時の仕様が気になって仕方がない
483デフォルトの名無しさん:2009/07/06(月) 20:32:49
>>478
・プロジェクトのプロパティ「追加の依存ファイル」 atlthunk.lib
・stdafx.h 「#define _WTL_SUPPORT_SDK_ATL3」の行を削除
484デフォルトの名無しさん:2009/07/07(火) 22:45:29
遅れました。
>>479>>480>>481>>482
申し訳ないです
>>483
無事にビルドできました。

皆様ありがとうございました。
485デフォルトの名無しさん:2009/07/29(水) 13:15:53
7/28のアップデートはATLを使っているプロジェクトに影響があるんだろうか
486デフォルトの名無しさん:2009/07/29(水) 16:16:03
ATL9についてだと、
http://support.microsoft.com/kb/971092
によると atlcom.h と atlhost.h の更新が影響大きそう。
中身の違いはまだよく精査してないけど、リビルドする必要がありそうね。

変更されたファイルの一覧を見ると、ATLのバグ修正のはずなのに
なぜか libcmt.lib なんかも更新されているね。
Cランタイムの変更の方は、バージョン変更によるアセンブリの更新のようだけど。
487デフォルトの名無しさん:2009/07/29(水) 22:41:56
http://msdn.microsoft.com/ja-jp/ee309358.aspx
ここに詳しく書いてある。
488デフォルトの名無しさん:2009/07/30(木) 00:22:01
なつかしフローチャート
489デフォルトの名無しさん:2009/08/02(日) 07:55:20
class CHoge
{
private:
CAtlMap<int, int> map ;
};

int _tmain(int argc, _TCHAR* argv[])
{
CAtlMap<int, CHoge> map ;
CHoge hoge ;
if ( map.Lookup( 0, hoge ) == false )
return 0;
}
こういうのは無理なんです?
490デフォルトの名無しさん:2009/08/02(日) 09:07:50
>>489
CHogeの代入演算子は既定のものなのでpublicだが、
CAtlMap自体の代入演算子はprivateで宣言されているため、
CHoge間の代入時にアクセスできないのでエラーとなる。
クローンを手作業で作るかポインタで持つか、そこら辺は好みで。
491デフォルトの名無しさん:2009/08/02(日) 10:03:27
なるほど今見たら
CAtlMap& operator=( const CAtlMap& ) throw();
これが確かにprivateでした
ポインタでやってみます、どもです
492デフォルトの名無しさん:2009/08/02(日) 10:05:33

http://itpro.nikkeibp.co.jp/article/NEWS/20090729/334737/
(1)[MS09-035]Visual StudioのActive Template Libraryの脆弱性により、リモートでコードが実行される (969706)
(2)[MS09-034]Internet Explorer用の累積的なセキュリティ更新プログラム (972260)
493デフォルトの名無しさん:2009/08/02(日) 10:08:17
Active Template Library (ATL) のセキュリティ上の脆弱性からコンピューターを守る
公開日: 2009年7月30日
http://www.microsoft.com/japan/security/atl.mspx
494デフォルトの名無しさん:2009/08/02(日) 10:52:36
365MB・・だと・・・
495デフォルトの名無しさん:2009/08/13(木) 22:13:45
WTL::CToolTipCtrl をオーナードローするにはどうすればいいの?
496,,・´∀`・,,)っ-○○○:2009/08/14(金) 22:13:54
http://msdn.microsoft.com/en-us/library/bb760246(VS.85).aspx

Win32のラッパーなんだからとりあえずリファレンス嫁
497デフォルトの名無しさん:2009/08/15(土) 00:43:11
呼んだけどWTLではどうやるの?
498,,・´∀`・,,)っ-○○○:2009/08/15(土) 01:24:04
なつやすみですね
499デフォルトの名無しさん:2009/08/15(土) 14:27:46
,,・´∀`・,,)っ-○○○
「・」と「´」どっちが目なの?
500デフォルトの名無しさん:2009/08/15(土) 14:50:14
>>495
OwnerDrawは出来ない。
CustomDrawは出来るけど。
501デフォルトの名無しさん:2009/08/22(土) 08:59:52
WDK 7.0.0のATL7.1ってバグ修正されてるのかな?
502デフォルトの名無しさん:2009/08/22(土) 09:43:05
さあ?
一応atlcom.hには、PROP_ENTRY_TYPEとか追加されてるし、
atlcomcli.hのCComVariant::ReadFromStream()の引数も増えてるが・・・
503デフォルトの名無しさん:2009/08/31(月) 08:08:34
Summer has gone.
504デフォルトの名無しさん:2009/09/11(金) 01:16:20
新規作成 ATL/WTL Application Wizard、何もいじらずにfinishしてReleaseビルド
出来上がったexeのサイズ

2005 -> 76K
2008 -> 156K

どちらもマルチスレッド/MT
どうも2008はCランタイムをリンクしてるっぽい
2008で、CRTを使用しないって自動的になるんじゃないの?
ちなみに新規作成のWin32プロジェクトではそんなことは起こらない
505デフォルトの名無しさん:2009/09/11(金) 03:54:24
少し前のバージョンからそれ変更されてたような。
個人的にはCRTあり/MDだったんでsetup90.js書き換えてそのまま忘れた。
506デフォルトの名無しさん:2009/09/12(土) 04:48:54
2008から_ATL_MIN_CRTが廃止されたって。
でいろいろコンパイルオプション変更してもだめだった
/NODEFAULTLIB:libcmt.libで、グローバル変数破棄だと思うけど、_atexit使われてるし
あきらめるしかないのか
507デフォルトの名無しさん:2009/09/12(土) 06:53:33
最近はコンピュータの性能も上がってきたからもういいという判断なのかもね。

個人的には9x/NT4切り捨てが勘弁してほしかった<2008
2010まで待ってほしかった。
508デフォルトの名無しさん:2009/09/18(金) 11:19:55
9x切り捨てか。もうTCHAR使うのやめようかな。
509デフォルトの名無しさん:2009/09/18(金) 11:45:27
ああそうか、どっち9xで動かんのならTCHARとか使ってる意味無いんだよな。
何を律儀に使い続けてたんだろう、俺。
510デフォルトの名無しさん:2009/09/18(金) 14:50:09
Meは忘れられた存在
511デフォルトの名無しさん:2009/09/18(金) 16:42:14
>>510
大人なんだから、もう忘れろ。98SEとかも。
512デフォルトの名無しさん:2009/09/19(土) 12:49:24
TCHAR とかほかの API とか最初からユニコード版でコード書くと
ちょっとはコンパイル速度あがるのかな
いちいち判断しなくていいから
513,,・´∀`・,,)っ-○○○:2009/09/19(土) 12:51:43
テンプレートベースのライブラリにコンパイル速度求めるのは・・・
514デフォルトの名無しさん:2009/09/19(土) 22:04:37
>>512
体感できるほどの差がでるわけねぇw
515デフォルトの名無しさん:2009/09/21(月) 20:48:56
スプリッターウィンドウの片方のペインを途中で別の子ウィンドウに切り替えることはできないのでしょうか。
SetSplitterPaneでできるかと思ったらペイン内の描画が切り替わらないのです。
516デフォルトの名無しさん:2009/09/21(月) 22:00:44
ソース嫁
517デフォルトの名無しさん:2009/09/21(月) 23:17:53
ソース読んでますが
ヒントだけでもplz
518515:2009/09/22(火) 02:00:51
ひょっとしてビュー切り替えのたびにDestroyWindowとCreateをしてやるのが
無難なのでしょうか?
519デフォルトの名無しさん:2009/09/22(火) 03:20:52
切り替えようとするウインドウ、非表示のままだったりしてw
あと、切り替えられる側、非表示にしてみては
520デフォルトの名無しさん:2009/09/22(火) 08:33:38
切り離した側のウィンドウを非表示にしてみては?
521デフォルトの名無しさん:2009/09/22(火) 08:34:32
かぶったorz
522デフォルトの名無しさん:2009/09/26(土) 13:14:27
ペインが親ウインドウになってる?
裏に行ってない?
523デフォルトの名無しさん:2009/10/17(土) 21:19:36
>508,509
安易にTCHARやめない方が良いと思うが。
UTF32/8なAPI群が追加されたりとかで、
またTCHARを使う意義が出てくる可能性は十分ある。
524デフォルトの名無しさん:2009/10/18(日) 00:56:35
ティーチャー
525,,・´∀`・,,)っ-○○○:2009/10/18(日) 19:48:56
おねがいTCHAR
526 ◆0uxK91AxII :2009/10/18(日) 20:23:29
ATLとは無関係だけど、
IWMWriter::SetOutputFilenameの引数がconst WCHAR*だったりして、
この時だけ、_TCHARを使うのを止めてみた。
527デフォルトの名無しさん:2009/10/19(月) 06:57:04
で?
528デフォルトの名無しさん:2009/10/28(水) 00:32:36
あー、確かにWindows Media Format SDKあたりは、WCHAR前提のが多かったな。
529デフォルトの名無しさん:2009/10/28(水) 18:12:33
自分1人の場合、むしろATL使える環境だったら、ATL::CT2Wとかで簡単に変換できるから、両対応は割と諦めない。
複数人開発とかATLがないんだったらとっととUNICODEビルドしかできないように書くこともためらわないけど。
530デフォルトの名無しさん:2009/10/29(木) 12:02:19
「UNICODEビルドしかできない」のは、T使ってるくせにwchar_tを仮定している
場合だけだと思うんだが、違うの?
ATLとか使わないんなら、Tなんか捨ててwchar_tとW版API使えば
どっちでビルドしても同じバイナリになるのでは

今T使われるのは、MFCやらATLやらWTLやらが使っているから仕方なく、
というケースが多いんだろうと思っていたよ
531デフォルトの名無しさん:2009/11/28(土) 21:26:04
CScrollImplって使いにくくない?
ScrollWindowEx使ってるからピクセル単位で扱わなならんし…
現在のスクロール位置もGetScrollPosとかで得ないといけないの?
532デフォルトの名無しさん:2009/12/29(火) 02:13:41
WTLあげ
533,,・´∀`・,,)っ-○○○:2009/12/29(火) 02:38:40
WTL世間は鬼ばかり
534デフォルトの名無しさん:2009/12/29(火) 12:49:02
ATLそうですね
535ゴロゴロ:2009/12/29(火) 22:45:10
WTL で作成したウィンドウ アプリケーションを、
そのまま ActiveX コントロールにすることはできないでしょうか?
536デフォルトの名無しさん:2010/01/06(水) 18:41:45
できるんじゃね?
537デフォルトの名無しさん:2010/02/05(金) 22:41:04
age
538デフォルトの名無しさん:2010/02/05(金) 22:59:10
ATLやWTLは今後も生き残っていく余地ある?
C++でプログラミングするときこれが一番いいんだけど
539デフォルトの名無しさん:2010/02/05(金) 23:02:03
生き残っていくの定義は何?
自分が使い続けるのに周りは関係ないだろ
540デフォルトの名無しさん:2010/02/05(金) 23:06:11
この先生きのこるWTL
541デフォルトの名無しさん:2010/02/06(土) 00:25:09
>>538
消えたら困るところが多いから、当分消えないだろ
Safariとか普通にATL使ってるし
Chromeとかも使ってるんじゃない?こっちは知らんけど
542デフォルトの名無しさん:2010/02/07(日) 19:11:52
#undef _WTL
543デフォルトの名無しさん:2010/02/08(月) 22:15:11
AYL/WTLは生き残るでしょう
お客様(笑)からお金貰って専用アプリ書くならc#でもいいですが
一般に配布するアプリを書くとなると.netではいろいろ不都合が多く
C++で書くというのはまだまだ残ると思いますよ。

それにC++で書く場合はMFCはいまさらだしSDKも論外、c#の部品に
慣れてるとATL/WTLがないとかなりしんどい

で、質問なんですがCSplitterWindowTって動的に縦割り横割りを切替できます?
もしかしてCSplitterWindowTに乗ってる部品のインスタンスを全部管理してて
切替の際は前のCSplitterWindowTを破棄した後、新しい割りのCSplitterWindowT
を作成して再配置とか・・・じゃないですよね?
544デフォルトの名無しさん:2010/02/08(月) 22:16:14
AYL/WTL
になってしもうた
ATL/WTL
545デフォルトの名無しさん:2010/02/08(月) 22:16:14
はいな
546デフォルトの名無しさん:2010/02/08(月) 22:19:06
>>545
切替可能?

破棄して再配置?

どちらにかかってます?>そのはいな
547デフォルトの名無しさん:2010/02/08(月) 22:58:33
548デフォルトの名無しさん:2010/02/08(月) 23:14:26
>>547
ありがとうございます
標準のWTLなどではできなくてそのアドレスの方が
実現するクラスを作られてるということですね
549デフォルトの名無しさん:2010/02/09(火) 00:40:47
>>547のコードをそのままVC++2008EEで使おうとすると

BEGIN_MSG_MAP(CFlippableSplitterWindowT)
MSG_WM_SIZE(OnSize)
MSG_WM_ERASEBKGND(OnEraseBkgnd)
END_MSG_MAP()

この部分で

error C3861: 'SetMsgHandled': 識別子が見つかりませんでした
error C3861: 'IsMsgHandled': 識別子が見つかりませんでした

とでます

いろいろ調べたところ

BEGIN_MSG_MAP_EX(CFlippableSplitterWindowT)
MSG_WM_SIZE(OnSize)
MSG_WM_ERASEBKGND(OnEraseBkgnd)
END_MSG_MAP()

これでコンパイルは通るのですがBEGIN_MSG_MAP_EXは問題があるという
記事がちらほら見受けられます。

BEGIN_MSG_MAP_EXで行っていいのでしょうか?
それもとBEGIN_MSG_MAPを使う方がいいのでしょうか?
BEGIN_MSG_MAPを使う場合に上記のエラーを回避するにはどうすればいいのでしょうか?
550 ◆0uxK91AxII :2010/02/09(火) 05:25:52
>>549
U read atlcrack.h
551デフォルトの名無しさん:2010/02/09(火) 14:54:52
c#のFlowLayoutPanelのようなテンプレートはありますか?
552デフォルトの名無しさん:2010/02/10(水) 06:41:10
最近WTLで開発を始めたのですが>549と同じようなところではまってます。

BEGIN_MSG_MAPでエラーになる場合はBEGIN_MSG_MAP_EXで問題なくなるのですが

BEGIN_SINK_MAPでIEのNavigate関連のイベントを拾うためのコードを書いても
エラーになってしまいます。

サンプルはいくつかネットで見つかったので同じように書いてみましたがエラーになります
プロジェクトごと配布されてるところの物を試しましたが同じ箇所でコンパイルできませんでした

やはり最新の開発環境の影響とかがあるのでしょうか?

開発環境はVC++2008EE と WTLの最新です
553デフォルトの名無しさん:2010/02/10(水) 06:51:01
試してみたサンプルの一つがこちらの物です。
http://www.nitoyon.com/vc/tips/ie_component.htm

イベントを取得する方法 というところの
http://www.nitoyon.com/vc/download/iwebbrowser3.lzh
これです

補足ですがVC6.0だと問題なくコンパイルが通りましたのでやはり
開発環境の違いなどでしょうか?
554デフォルトの名無しさん:2010/02/10(水) 07:35:17
EEにはATLが付いてない
555デフォルトの名無しさん:2010/02/10(水) 07:40:11
>>554
その辺は理解してます。
EEでもATLとWTLを入れる方法を紹介されてるサイトがあったので
その手順に従い一応開発はできているのですがその過程で>>552
のような問題にあたりました。

どうもマクロ関係でおかしくなるんですよね・・・

それ以外はまあおかしくなる要素がないというか
556デフォルトの名無しさん:2010/02/10(水) 08:05:45
ATLはどのバージョンをどこから拾ってきたん?
557デフォルトの名無しさん:2010/02/10(水) 08:14:41
http://www.off-soft.net/ja/develop/wtl/wtl1.html
ここを参考にして5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.imgをインストールしてその中の物を使ってます
558デフォルトの名無しさん:2010/02/10(水) 08:19:09
ちなみに
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/
http://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
この辺のサイトを参考にして作った物は動くのですが
その中へ>>552で述べたようなCOMのイベント関連のマクロのところが
どうにもならなくて困っている状況です。

BEGIN_MSG_MAPに習ってBEGIN_SINK_MAPもBEGIN_SINK_MAP_EXとしてみましたが
今度は関係のないはずのBEGIN_MSG_MAPあたりまでエラーを吐く始末で
559デフォルトの名無しさん:2010/02/10(水) 12:26:25
うちの2008EE+WTL8+WinDDKのATL7で試してみたけどちょっと別の問題出たけどコンパイル&実行出来たよ
560デフォルトの名無しさん:2010/02/10(水) 12:40:08
VC9+ATL3じゃ問題多そうだよな
561デフォルトの名無しさん:2010/02/10(水) 12:44:45
>>559
うーむ
DDKの方は試して無かったです

>>560
ATL3関連は切ってるんでるけどね
最近のWTL8はATL3を切り離せるようになってるので

そうじゃないとatlthunk.libのリンクの問題がおきて先に進まないので
562デフォルトの名無しさん:2010/02/10(水) 12:49:16
あとDDKとかSDKとかじゃなくてVSの評価版ありますけどあれの中からATLをいただくというのは
まずいんですかね?
563デフォルトの名無しさん:2010/02/10(水) 12:50:21
だめ。
564デフォルトの名無しさん:2010/02/10(水) 12:55:41
expressなんて使っている乞食が
ATL使いたがるなよw
565デフォルトの名無しさん:2010/02/10(水) 19:02:50
今日VS持ってる知り合いのところでためさせてもらったら
WTLへのパスを設定してstdafx.hの中の#define _WTL_SUPPORT_SDK_ATL3を
コメントにしたところ一部標準関数について警告は出たもののあっさりコンパイルできました。
環境構築が失敗してたようです

>>564
VS2010のRCが出てる段階なのでタイミング的にどうしようか迷ってる段階なんですよ
VC6.0は持ってるのですがさすがにあの古臭いインターフェースではやりたくないし
566デフォルトの名無しさん:2010/02/10(水) 19:06:48
stdは2010で廃止だからな
567デフォルトの名無しさん:2010/02/10(水) 19:12:56
Express/Professional/Premium/Ultimate
この4つだけなんですね

どう買えばお得なんでしょうか?
ネットで調べてみるとVL版(3ライセンス)がお買い得みたいなのも見受けられますし
568デフォルトの名無しさん:2010/02/10(水) 19:48:04
Proの新規は確か9万以上したような
569デフォルトの名無しさん:2010/02/10(水) 19:50:25
VS2010スレできいたほうがいいんじゃね
570デフォルトの名無しさん:2010/02/10(水) 20:02:08
>>569
そうします
571デフォルトの名無しさん:2010/02/10(水) 23:19:48
win32からWTL使ってみようかなと思ったけど
WTLの情報少ないな
まともなサイトがテンプレぐらいしかない
572デフォルトの名無しさん:2010/02/10(水) 23:21:52
>>571
なんとか頑張るしかないですね
今c#ぽい部品を作ってる

C++ってset{}get{}ってできないんでしたっけ?(汗
573デフォルトの名無しさん:2010/02/10(水) 23:24:38
VCなら
__declspec property
574デフォルトの名無しさん:2010/02/10(水) 23:31:56
>>573
ぼやいてみるものだ

ありがとうございます
575デフォルトの名無しさん:2010/02/10(水) 23:49:36
どこかで.netライクなWTLを使ったクラスライブラリを
やってるところはないのか?
やってたらアホみたいだし
576デフォルトの名無しさん:2010/02/11(木) 08:50:49
アホみたいだから誰もやってないんじゃない?
577デフォルトの名無しさん:2010/02/11(木) 13:39:42
>>566
stdネームスペースのクラスたちが消えるの?
578デフォルトの名無しさん:2010/02/11(木) 13:50:15
>>575
需要ないと思うよ
579デフォルトの名無しさん:2010/03/06(土) 10:56:25
ATLのCComPtr::Releaseなのですが
void Release() throw()
{
T* pTemp = p; //*1
if (pTemp)
{
p = NULL;
pTemp->Release();
}
}

こういうコートです。

p->Release();
p = NULL;

じゃだめなのでしょうか?
マルチスレッドに関連したものかなと思ったけど、*1が走る直前に取得したポインタに対して操作を行う可能性を考えたら
あまり意味のあるものではないような気もするのですが。
580デフォルトの名無しさん:2010/03/06(土) 14:17:38
>>579
pがインスタンス変数とすると、
pTemp->Release()で例外が飛んでも
pを必ずNULLにしたいってことじゃないかな。
581 ◆0uxK91AxII :2010/03/06(土) 14:37:30
手元にあるモノだと
IUnknown* pTemp = p;
って書いてあるから、昔の名残っぽい予感。
582デフォルトの名無しさん:2010/03/06(土) 17:14:22
VC9SP1でもVC10RCでも>>579になってるけど
583デフォルトの名無しさん:2010/03/06(土) 18:42:44
if (p) //*1
{
p->Release(); //*2
p = NULL;
}
は、マルチスレッドなら*1でp!=0でも、*2でp!=0の保証はないよ。
スタックにコピーすべき。
584デフォルトの名無しさん:2010/03/06(土) 19:02:11
>>583>>579に書き直しただけじゃスレッドセーフにならないぞ。
CComPtrがスレッドセーフなのは、参照カウンタの処理をアトミックにしてるからだ。
585デフォルトの名無しさん:2010/03/06(土) 21:44:37
>579
ATLインターナルによると、解放処理内でスマートポインタが再度参照されて
二重解放されてしまう事態を防ぐためらしい。
>579 のコードだと次のケースで問題が生ずる。以下引用

 たとえば、スマートポインタがクラスAのメンバ変数で、オブジェクトBの参照を
保持しているとしよう。そして、スマートポインタの.Release メソッドを呼び出す。ス
マートポインタは、オブジェクトBへの参照を解放する。今度は、オブジェクトBが、ス
マートポインタを含んだクラスAのインスタンスを参照する。オブジェクトBは、クラ
スAのインスタンスへの参照を解放することにする。クラスAのインスタンスはデスト
ラクションを決意し、スマートポインタのメンバ変数のデストラクタを呼び出す。デスト
ラクタはインターフェイスポインタがNULLでないことを検出し、インターフェイスを
もう一度解放する。
- ATLインターナル(p.86)
586デフォルトの名無しさん:2010/03/06(土) 21:57:35
なるほど
587デフォルトの名無しさん:2010/03/06(土) 22:39:04
このスレでATL インターナルを持っていないやつがいるのか。
588 ◆0uxK91AxII :2010/03/06(土) 23:39:47
>>585
気持ち悪い。
589,,・´∀`・,,)っ-○○○:2010/03/07(日) 01:01:43
そこまでやっててあの致命的なバグだからなぁ
590デフォルトの名無しさん:2010/03/07(日) 22:34:28
はじめまして、質問させてください。
以前VC6.0で作成したATLを、WinXPのローカルにANHTTPD+MySQL+PHPの環境を作り、
PHP(ブラウザ)からATLを呼び出して処理を行なっていました。
今回、OSをVistaに変更して動かそうと思っていますが、今までコールできてたATLのメソッドがコールできません。

phpのソースは全く同じものを使用しており、ATL(DLL)のCLASSIDも同じで、ソースの変更も行なっていません。
しかしWebサーバを今回 ANHTTPDからApacheに変更しています。ANHTTPDはVista対応となっていない為。

ブラウザの設定でスクリプトエラーごとに通知するにチェックしてみると、
「オブジェクトでサポートされていないプロパティまたはメソッドです」と表示されます。
試しにメソッド内部の先頭にメッセージボックスを入れてみましたが表示されないので、呼ばれていない様です。

何かこれらで原因が分かる方いらっしゃいますか?よろしくおねがいします。
スレ違いでしたらスミマセン。
>>590
管理者として実行でコマンドプロンプトを開く。
REGSVR32でDLLを再登録。
592デフォルトの名無しさん:2010/03/07(日) 22:59:07
>>591
レスありがとうございます。
REGSVR32でDLLの登録は、スタートアップにバッチファイル入れて、成功しましたと出ています。
593590:2010/03/07(日) 23:26:50
それと、UACも無効にしています。
VC6.0は、Vista未サポートってのが原因でしょうか。
動かされた方いますか?
594デフォルトの名無しさん:2010/03/28(日) 13:50:53
すいません、質問です。

Windows Vista Ultimate(32bit) SP1
VC++2008 Express Edition
PlatformSDK 2003付属のATL3.0
WTL8.1

という環境で、ATL/WTLウィザードで作成したexeを実行すると
DEPに引っかかって死んでしまいます。
いろいろ調べたんですが、
void * __stdcall __AllocStdCallThunk()の
HeapAllocをVirtualAllocに変えるといいらしいと言う事がわかり、
それはそれでいいのですが、いまひとつ納得いかないのは、

Windows2000
VC++6.0 Enterprise Edition付属のATL3.0
WTL8.1

という環境で、同じようにウィザードを使って作成したexeを、
Vistaにコピーして実行してもDEPに引っかからない事です。
普通に実行できてしまいます。
同じATL3.0なのに、どうしてこういう違いが出るのでしょうか?
595デフォルトの名無しさん:2010/03/28(日) 14:19:39
VC9で作ったexeは(/NXCOMPATが既定なので)VistaSP1以降DEPが自動で有効になる
VC6で作ったexeはDEPが自動では有効にならない

っていう話じゃないのかなあ
596デフォルトの名無しさん:2010/03/28(日) 23:03:53
VC6+ATL3で生成されたと見られるコードに対してだけ、OS側で
特殊な処理をしているんだと思う。この組み合わせで作られた過去の
プログラムが軒並みDEPに引っかかるとまずいから。

ちなみにVirtualAllocは64kb(正確にはSYSTEM_INFO::dwAllocationGranularity)単位で
メモリを予約するので、HeapAllocから置き換える時は注意。
597594:2010/03/29(月) 20:43:52
回答いただきありがとうございます。
返事が遅くなってすいません。

>>595
オプションでDEPを無効にできるとは知りませんでした。
/NXCOMPAT:NOをしてビルドすると、VC2008で作成したexeも
DEPに引っかからず実行できました。

でもビルドオプションで無効にできるなら、
ウィルス対策としての意味がないような??
ちょっとよくわからない仕組みですね。

>>596
なるほど。/NXCOMPATが無効で、かつATL3.0で作られたexeの場合のみ、
ATLのthunkの部分に限ってDEPのチェック対象から外す、
みたいな事をOSがやってるんですかねえ。

VirtualAllocに関しては了解です。
確保した領域から必要サイズだけ切り出して使うようにしようと思います。
598デフォルトの名無しさん:2010/03/29(月) 21:55:53
おとなしくVS2008のStdかProアップグレードを買えば済む話。
599デフォルトの名無しさん:2010/03/30(火) 01:21:20
>>597
ウィルスというか、バッファオーバーフローとかの脆弱性対策だろ
600デフォルトの名無しさん:2010/03/30(火) 09:54:56
>>597
DEPとは外部から送り込まれたマルウェア(データセグメントに置かれる)の実行を
防止する仕組みなので、データセグメントにコードを置かないプログラム(特殊な
プログラムを除いて大部分が該当する)にマークする仕組み、すなわち入り込ませ
ない仕組みなので、正しい。
601デフォルトの名無しさん:2010/03/31(水) 13:00:09
WTLってクラス定義の中にメソッドの定義まで書き込んじゃってますけど
みなさんは自分のコードもそんな風に書いてますか?
それとも宣言と定義を.hと.cppに分けてますか?
602デフォルトの名無しさん:2010/03/31(水) 16:28:37
>>601
え?
603デフォルトの名無しさん:2010/03/31(水) 17:10:25
インラインは.inlってファイルを個別に作ってるな
ヘッダが長くなると読みにくい
604,,・´∀`・,,)っ-○○○:2010/03/31(水) 17:52:48
テンプレートってそもそもそんなもんだ
605601:2010/04/02(金) 08:14:19
そうそう、長くなって読みにくいんですよね。
しばらくは.inlで試してみます。ありがとうございました。
606デフォルトの名無しさん:2010/04/29(木) 11:17:13
C++の文法を一通り学んでこれからwindowsアプリを少しずつ作っていきたいのですが
いきなりWTLやって大丈夫ですか?
SDKやMFCを今からやるのは無駄ですか?
607デフォルトの名無しさん:2010/04/29(木) 11:39:54
WTLを使いながらSDKは必ず身につく
MFCはいらない子
608デフォルトの名無しさん:2010/04/29(木) 14:33:58
SDKは必要
MFCを今からやるのは無駄
609デフォルトの名無しさん:2010/04/29(木) 19:04:04
>>607-608
ありがとうございます。がんばってみます。
610デフォルトの名無しさん:2010/05/01(土) 15:35:00
CFrameWindowImpl ベースのウィンドウを作成し、その上に
各種コントロールを配置してアプリケーションを構成しているのですが、
各コントロールに WS_TABSTOP を指定してもタブ遷移が一切
できません。。
Gooooogle先生にも聞いてみましたが、いまいちWTL(ATL)への応用方法が
わかりませんでした。

教えてエロい人!!
611デフォルトの名無しさん:2010/05/01(土) 16:40:52
PreTranslateMessageあたりでIsDialogMessageを呼ぶ
612デフォルトの名無しさん:2010/05/01(土) 18:47:21
>>608
MFCの仕事は今でも新規であるけれど、ATLは一度話があったきり、WTLは聞いたこともね。
ATLもWTLも趣味でコネコネ楽しむものだと思ってた。
仕事で使えてる人っておられます?
613デフォルトの名無しさん:2010/05/01(土) 19:13:35
DirectShowやらActiveXやら絡みの仕事でならあるんじゃないか。
614デフォルトの名無しさん:2010/05/01(土) 20:17:20
>>612
MFCは使わんけど、ATL/WTLはがんがんに使っているよ。うちの会社の製品は。
615デフォルトの名無しさん:2010/05/01(土) 21:18:26
>>612

>>606 は仕事で使うとは一言も言っていないのに
なぜMFCを仕事で使う云々言い出すんだ?
616610:2010/05/01(土) 22:59:16
>>611
置いてみたら見事TABが抜けることはできました!
ですが、ツールバーにフォーカスが当たり、そこから抜け出せません。
一応他のウィンドウは WS_TABSTOP を指定しています。
指定しているのは、ウィンドウ遷移してほしいコントロールだけですが。。

ツールバーより先のウィンドウへフォーカスを遷移させるにはどのように
したら良いでしょうか。
617デフォルトの名無しさん:2010/05/01(土) 23:03:31
>>612
.NET使わないでC++でWinアプリ作るとしたら仕事ではMFCが第一選択肢になるって事?
618デフォルトの名無しさん:2010/05/01(土) 23:13:52
612じゃないが
C++であえてMSのものを使う案件ではMFCが多くATLはあまり(ほとんど)ない
と言うこと
で、今のC++WinアプリはQtが主流
619デフォルトの名無しさん:2010/05/01(土) 23:34:38
C++でCOMの案件はATL必須。
ただATL技術者なんて単価高いし集まらないから普通はVBでCOM。
620デフォルトの名無しさん:2010/05/02(日) 07:22:51
612です。
みなさんありがとう。
>>617
ウチの勤め先の傾向はまさにそういう傾向です。
>>618-619
たぶんウチの守備範囲が狭いってことでしょうね。
621デフォルトの名無しさん:2010/05/02(日) 09:00:20
2002 の安定版が 2003?
2005 に安定版が 2008?
ということで、
金のない俺は次のバージョンを待つほうがいいいのかな。
二年後に .NET 5 がでてくるとも思えないし。
622デフォルトの名無しさん:2010/05/02(日) 09:05:56
まちがった ごめん
623デフォルトの名無しさん:2010/05/02(日) 20:16:56
MFCは表面
ATLは裏方
624デフォルトの名無しさん:2010/05/03(月) 11:45:00
WTLは張りぼて
625デフォルトの名無しさん:2010/05/03(月) 21:44:33
それは否定しない。
626デフォルトの名無しさん:2010/05/03(月) 23:54:58
仕事下さい
627デフォルトの名無しさん:2010/05/04(火) 12:57:01
VBorJavaを習得すべし。
628デフォルトの名無しさん:2010/05/04(火) 13:02:54
Vbor Java って言語が出来たのかとおもた
629デフォルトの名無しさん:2010/05/06(木) 13:21:25
class A : public IUnknown {};
class B : public IUnknown {};
class C_ :
 public CComRootObject,
 public A,
 public B
{
BEGIN_COM_MAP(C_)
 COM_INTERFACE_ENTRY(A)
 COM_INTERFACE_ENTRY(B)
END_COM_MAP()
};
typedef CComObject<C_> C;

CComPtr<C> p;
C::CreateInstance(&p);

CComPtr<C> q = p; // OK!
CComPtr<C> r; r = p; // NG! 'IUnknown *' への変換はあいまいです。
static_cast<IUnknown*>(p) // NG! 'IUnknown *' への変換はあいまいです。

ATLを使うと、IUnknownの多重継承を解決してくれるものと思っていたのですが、そんな都合のいいことはなかったようです。
どこが間違っているのか、ご指摘いただけないでしょうか?
630デフォルトの名無しさん:2010/05/06(木) 17:40:26
ソースの貼り方を間違えている
631デフォルトの名無しさん:2010/05/06(木) 18:03:20
すみません、何が悪いのかわかりませんでした。
どこを直して張り直せばよろしいでしょうか?
632デフォルトの名無しさん:2010/05/14(金) 09:56:46
WTL初心者です。以下の内容のDLLをWTLで作ろうかと考えています。
・複数のツールで共通して使用するダイアログ(コモンコントロールのパレットみたいなもの)
・データはそのダイアログが保持し、非表示状態でも保持している。
・ダイアログのクラスに対してデータの受け渡しや参照をツール側の好きなときにいつでも出来る。
・モードレスダイアログ

こういう物を作るのは可能、かつ簡単にできるでしょうか?
参考になるURLとかもあれば教えて頂きたいです。
WTLでツールを作成している場合、こういうものを作りたくなることは良くありそうですが、
もしももっと一般的なやり方があればそちらを教えて下さい。
それとも、WTLのプログラムは常時EXE一個のみなんでしょうか?

宜しくお願いします。
633デフォルトの名無しさん:2010/05/14(金) 11:13:54
やってみりゃいいじゃん
634デフォルトの名無しさん:2010/05/14(金) 11:56:01
>>632
簡単にできすまよ。URLは >>2
635デフォルトの名無しさん:2010/05/18(火) 23:49:23
>>632
pragma data_seg
参照カウンタ
636デフォルトの名無しさん:2010/05/20(木) 22:37:12
すいませんが、教えてください
WTLで以下のようなCStringのマップを扱おうとするとコンパイルエラーが出る
んですけど、なぜでしょうか?
(atlmisc.hの代わりにatlstr.hをインクルードするとこのエラーは出ません)

#include <atlmisc.h> // for CString
#include <atlcoll.h> // for CAtlMap

func()
{
CAtlMap<CString,CString> str_map;

str_map.SetMap(_T("aaaa"), _T("bbb")); →ココでエラーになっている模様

...
}

コンパイルエラーの内容
\microsoft visual studio 9.0\vc\atlmfc\include\atlcoll.h(128) : error C2440: '<function-style-cast>' : 'const WTL::CString' から 'ULONG_PTR' に変換できません。
637デフォルトの名無しさん:2010/05/21(金) 02:01:05
atlmisc.hに、CElementTraitsの設定が無くて、
デフォルトのハッシュ計算(値そのもの)が使われるから。
638デフォルトの名無しさん:2010/05/22(土) 02:50:28
>>637
回答どうもです
639デフォルトの名無しさん:2010/06/02(水) 01:00:58
ATLってタダで使えるみたい?7.1
ttp://d.hatena.ne.jp/sea-show/20100517
640デフォルトの名無しさん:2010/06/02(水) 18:55:31
どうせ怪しい事するなら評価版から抜くわ
641デフォルトの名無しさん:2010/06/08(火) 22:52:42
Visual Studio 2010 ExpressにWTLインストールできた人いる?

WTL公式からExpress対応版が出るのを待つか
自分で何とかするしかないのかな?
642デフォルトの名無しさん:2010/06/08(火) 23:23:21
Scriptのパス書き換えるだけじゃろに
643デフォルトの名無しさん:2010/06/09(水) 13:45:12
644デフォルトの名無しさん:2010/06/09(水) 16:19:06
>>643
それExpressに対応して無いよ
645デフォルトの名無しさん:2010/06/10(木) 04:59:08
ATLが無くても動くWTLが欲しいです。
646デフォルトの名無しさん:2010/06/10(木) 05:24:51
WTLから使っているATLの機能ってどのぐらいだろ。
CWindowImpl周りだけならまがい物も作れそうだけど。
647デフォルトの名無しさん:2010/06/10(木) 10:01:52
もうちょっとモダンなGUIの実装があればなあ。
Windowsコモンコントロールは古臭すぎる。
648デフォルトの名無しさん:2010/06/10(木) 10:05:16
たとえばどんなの?
649デフォルトの名無しさん:2010/06/10(木) 10:21:31
少なくともレイアウトコンテナ機能がある物
650デフォルトの名無しさん:2010/06/10(木) 10:29:15
このライブラリを使って作ったアプリってWindows NTで動く?
651デフォルトの名無しさん:2010/06/10(木) 10:33:02
うごくものもあるしうごかないものもある
652デフォルトの名無しさん:2010/06/10(木) 10:48:33
>>645-646
基本的なウィンドウ生成部分は全部ATL側だから
WTLだけの動作は絶対に無理な気がする

つか、それができたら多分ATLってもう使われて無いような
653デフォルトの名無しさん:2010/06/10(木) 10:58:45
俺は逆にATLにWTLの必要な機能だけ移植して使ってるな。
WTLのFrameWindowは不満点多いし。
654デフォルトの名無しさん:2010/06/10(木) 11:00:08
>>651
ありがとうございます。では、もう少し具体的に。
ダイアログにボタンとラベルがあって、ボタンを押したらAフォルダからBフォルダに
ファイルをコピーするぐらいの物なのですが、Windows NTで動きますでしょうか?
655デフォルトの名無しさん:2010/06/10(木) 11:01:17
ATL以前に、Visual C++ 2008以降はWindowsNTをサポートしてないよ。
656デフォルトの名無しさん:2010/06/10(木) 11:15:06
>>655
私が使っているVC++は2005なので、そこは確認済、大丈夫です。

実は、案件でWindows NTで動くちょっとしたプログラムを作らないといけなくなりまして、MFCかATL/WTLでやろうと考えています。
MFCは今更MFCやっても…という考えがあり、ATL/WTLでできるならそっちでやろうと思って質問させて頂いています。
657デフォルトの名無しさん:2010/06/10(木) 11:20:22
まぁ、
WINVER=0x0400
_WIN32_WINNT=0x0400でコンパイルが通れば、普通は動くんじゃない?

ちなみに、古いATLを使うのはセキュリティ上お薦め出来ないよ。
658デフォルトの名無しさん:2010/06/10(木) 11:33:53
つーかNTの時点でセキュリティも何も無いなw
659デフォルトの名無しさん:2010/06/10(木) 11:55:52
>>657
ありがとうございます。
複雑な事をしない単純な物なので、多分、イケるかと思います。

>>658
ですよねw

皆様、ありがとうございました。ATL/WTLの勉強に励むとします。
660デフォルトの名無しさん:2010/06/10(木) 12:03:19
実行バイナリのヘッダにリンカが設定するバージョンも修正しないと起動時にエラーになるかも
661デフォルトの名無しさん:2010/06/10(木) 14:55:47
>>660
ありがとうございます。その際はアドバイス通り対応致します。
662デフォルトの名無しさん:2010/06/12(土) 22:16:03
英語主ブログアドレス
http://nanjitsu.blog57.fc2.com/
663デフォルトの名無しさん:2010/06/12(土) 22:16:46
誤爆スマソ
664デフォルトの名無しさん:2010/06/13(日) 20:45:29
CPaneContainer で、SetTitle() すると出力される領域の高さを
調節することって可能?
やっぱりヘッダファイル直修正しなきゃだめかなぁ。
可能な場合メソッド名教えてくだしあ><
665デフォルトの名無しさん:2010/06/13(日) 21:10:08
>>664
CPaneContainerImplを継承したクラスを作って
UpdateLayoutをオーバーライトする
666デフォルトの名無しさん:2010/06/13(日) 21:23:40
オーバーライト(笑)
667デフォルトの名無しさん:2010/06/13(日) 21:25:09
>>666
ドでしたね
ごめんなさい
668デフォルトの名無しさん:2010/06/13(日) 21:30:48
>>664
ソース見たけど、高さを変えるだけなら CalcSize、フォントを変えるだけなら GetTitleFont を
再定義する方が、UpdateLayout よりも簡単そう。
どのメソッドも擬似継承できるように作られてる("pT->" 付きで呼ばれている)
669デフォルトの名無しさん:2010/06/18(金) 16:20:43
CScrollWindowImplの派生クラスでテキストファイルを表示させたんですけど、
マウスのホイール回しでのスクロールが効いたり、効かなかったりします。

・表示直後は効かない
・一回他のウインドウに切り替えた後、戻ってくると効くようになっている

WM_MOUSEWHEELは常に来ているようなんですけど、原因は何が考えられるでしょうか?
670デフォルトの名無しさん:2010/06/18(金) 16:28:57
フォーカス?
671デフォルトの名無しさん:2010/06/18(金) 17:15:59
>>670
ご指摘どおり、原因はフォーカス設定だったようです。
WM_MOUSEACTIVATEでSetFocus()するようにして直ったみたいです。
ありがとうございます。
672デフォルトの名無しさん:2010/06/20(日) 18:56:31
WTLのマウスムーブイベントで質問です。
ビュークラスでマウスムーブイベントを作り、wParamからshiftキーの押下状態も取得しているのですが挙動がおかしくなります。
トレース文で色々試した結果の動きです。

・何も押さないマウスムーブ
大体2回くらいずつ全くの同一座標、同じキー押下状態なのにイベント発生する。
マウスを1フレーム?分動かすとトレースが2回でたりでなかったりする。

・shiftを押して右ボタンドラッグのマウスムーブ
長時間Shiftを押してマウスを動かすと、両手を話してもしばらく延々とマウスムーブイベントが発生する。
カウンタを表示してみるとずらずらずらずらっと全くの同一座標で一切マウスを触ってないのにしばらくイベント発生が続く。
そしてそれを放出しきって初めてマウスボタンアップイベントが発生する。

・SHIFTを押して少しだけマウスムーブ
shiftONの状態で動かした分だけトレースが出る。トレースが止まりしばらく放置していると、
数秒後あたりに思い出したようにズラズラズラッとShiftを押して無い状態で座標同一のマウスムーブイベントが十数回連続発生する。

プログラム側の処理遅延では無いと思います。(たいしたことしてない)
何故このようなことになるのでしょうか?
また正しくイベントを受け取るにはどうすればよいのでしょうか?
673デフォルトの名無しさん:2010/06/20(日) 19:33:36
TRACEじゃなくてテキストにでも書き出してみ
674デフォルトの名無しさん:2010/06/20(日) 20:27:10
>>673
テキストに書きだすと何か変わるのでしょうか?
一応このマウスムーブに連動した描画処理を見ても、確かにこのトレース結果の通りの
動きをしています。

ぶっちゃけるとマウスムーブで3D図形を回転させているんですが、Shiftを押しながらだと
長時間やるとボタンを離してもしばらくはマウスボタンアップを認識しませんが追従した動きだけはします。

考えてみれば溜まった処理吐き出しとはちょっと違いますね。
しばらくマウスボタンアップイベント発生がお預けになってマウスムーブが割り込みまくっている感じかも。
675672:2010/06/21(月) 13:27:14
原因がわかりました。

マウスクリックの音ですら近所から苦情がくるので、テンキーマウスを使用してテンキーをマウスボタンのように使い、
Keypointerというフリーソフトを使って操作していたのですが、このKeyPointerが原因のようです。
常駐を外して実際のマウスボタンとキーボードで操作すると問題は発生しませんでした。

しかしまともなサイレントマウスはどこも発売しないし、KeyPointerに変わるソフトも見当たらないので、
操作方法を見直すしかないようです。
676デフォルトの名無しさん:2010/06/21(月) 13:33:20
ワロタw
引っ越せよw
677デフォルトの名無しさん:2010/06/21(月) 14:18:07
酷い環境だw
ゲームパッドをマウス代わりにするソフトでも同じようなことあるかな?
678672:2010/06/21(月) 14:37:30
追記です。
GetAsyncKeyStateを使って現時点のSHIFT押下状態取得すると正確な値がとれるようです。
これでとった値と、Wparamからとった値を同時表示してみると、
wparamの方はずらずらずらっと遅れた情報送ってるのに対して、GetAsyncKeyStateのほうは機敏に最新状態を反映しています。

サイレントマウスはほんとにマトモなものがないです。
マウスボタンをテンキーマウスのペナペナのテンキーに置き換えればいいだけなのにどこも作りません。
マウスホイールも何も工夫しなければ無音なのに・・・。

マウス作ってる業界では「カチッ!!カチッ!! カリカリカリカリ!!」
という高らかな音を響かせないとそれはマウスと言えないようです。
679672:2010/06/21(月) 14:43:50
さらに追記。
マウス位置もLparamからとらずに、
GetCursorPos); // 現在位置取得
ScreenToClient(); // クライアント座標変換
を使った方がいいかもしれません。

結局マウスムーブイベントで分かる情報は「なにやらマウス動かしたらしい」
程度しか正確なものは無いっぽいです。
680デフォルトの名無しさん:2010/06/21(月) 14:47:48
そろそろスレ違いに気づいてもいい頃だと思うんだが
681デフォルトの名無しさん:2010/06/21(月) 15:31:39
WTLのマウスムーブイベント、とかなんとか書いてるけど要はWM_MOUSEMOVEのことでしょ
初めからATL/WTL関係なし
682デフォルトの名無しさん:2010/06/21(月) 18:39:47
その異常者が引っ越すべきだろ
683デフォルトの名無しさん:2010/06/22(火) 05:04:31
とある隣人のムーブイベント
684デフォルトの名無しさん:2010/06/22(火) 07:01:15
同棲しているだけだろう
くそっ爆発しろっ!
685デフォルトの名無しさん:2010/06/22(火) 07:02:38
どかーん
686デフォルトの名無しさん:2010/07/02(金) 13:23:52
教えてー><
CWindow の上に CSplitWindow を配置して、
その上に CPaneContainer と CListViewCtrl を重ねるコードを1つのヘッダファイルに書いていたんですが、
CPaneContainer > CListViewCtrl の時はうまく表示されてたのに、
CPaneContainer > CTabCtrl > CListViewCtrl の構成に変えたら CListViewCtrl が描画されなくなってしまいました。

たぶんメッセージ系の扱いがうまく行ってないと思うのですが、
考えられる問題がありましたらご指摘ください!!!
687デフォルトの名無しさん:2010/07/02(金) 14:20:25
どういう風に重ねてるのかは知らんが
CTabCtrlよりもCTabViewの方がいいんじゃね
688名無しさん@そうだ選挙に行こう:2010/07/10(土) 19:48:38
xpパソコンのxpスタイルでシンプルリバーをつけたら描画がおかしいけど
(上部横一線が透過されて背景が・・・)
これってwtlのせいじゃなくて開発環境のせい?
だれかおしえてください。
689688:2010/07/13(火) 11:51:37
ws_borderをなくしたら解決しました。
690デフォルトの名無しさん:2010/07/13(火) 14:25:00
なるほど
691デフォルトの名無しさん:2010/07/27(火) 18:02:24
ダイアログバーのOnPaint(WM_PAINTイベント)について教えてください。
これを追加するとそのダイアログバーを開いた瞬間にダイアログが真っ白になってコントロールが表示されなくなります。
実態はなぜかOnPaintが永久に呼ばれているみたいです。(デバッグコメントで確認しました。)

最初はOnPaint契機でピクチャーボックス内に描画する処理があり、その描画の結果再びOnPaintが発生する無限ループかと疑っていたのですが、
描画処理をコメントアウトし、OnPaint関数内ではreturn 0;しかない状態にしても状況が変わりませんでした。

一体なぜこうなってしまうのでしょうか?
またダイアロブが描画されるたびにピクチャーボックス内に画像を書き込む処理を入れないといけないのですが、
別な手段があるのでしょうか?

MFCを使ったアプリケーションでも似たような処理をしていますがこっちでは発生しませんでした。
WTLを使った方でのみ発生します。

ご存じの方がいれば教えてください。
よろしくお願いします。
692デフォルトの名無しさん:2010/07/27(火) 18:13:37
OnPaint内でInvalidateRect呼んでるとか
693デフォルトの名無しさん:2010/07/27(火) 18:36:29
>>691
>OnPaint関数内ではreturn 0;しかない状態にしても

いやこれをやっちゃダメだろう。
BeginPaint〜EndPaint呼ぶなりValidateRect呼ぶなりCPaintDC置くなりしないと
永久に無効領域が有効化されないぞ。
694デフォルトの名無しさん:2010/07/27(火) 19:52:25
WM_PAINTでなにもしないとなにも描かれないだろwww
695デフォルトの名無しさん:2010/07/27(火) 20:21:49
>>691
>>693にもあるけど、WM_PAINTをトラップしたら、たとえ何も描画しないとしても
必ずCPaintDCのインスタンスを置く事

じゃないと領域が無効のままになって、WM_PAINTが永遠に発行され続ける
696デフォルトの名無しさん:2010/07/28(水) 20:51:57
>>694
これはそういう問題じゃないと
697デフォルトの名無しさん:2010/07/28(水) 22:34:35
WTLの更新はまだですかviksoeさん
698デフォルトの名無しさん:2010/07/29(木) 00:24:26
>>691
ttp://bygzam.seesaa.net/article/157672929.html
>通常、WM_PAINTのハンドラではBeginPaint/EndPaintやValidateRect等を呼んで、
>無効領域のクリアをしないといけません。しかし、このサンプルではWM_PAINTで何もしていないので、
>無効領域がクリアされず永遠にWM_PAINTが発生し続けます。

>普通はWindowsプログラマがやってはいけないことのタブーを、このサンプルプログラムでは
>画面更新のトリガーに使っています。私の感覚では、気持ち悪いですね。
699デフォルトの名無しさん:2010/07/29(木) 00:45:39
上の回答レスと全く同じこと言ってるな、まあ当然だが
それにしてもWTL関係ないな
700691:2010/07/29(木) 06:06:02
ゴタゴタしててレス遅れました。すいません。
695でのご指摘の通りでした。

OnPaint関数に
CPaintDC dc(m_hWnd);
を付け加えただけで解決しましたが、正直一見して何もしない無駄な行にしか見えず、
いまいち理解しきっていません。

自分なりに色々調べてみます。ありがとうございました。
701691:2010/07/29(木) 06:09:15
ちなみにMFCのほうではこの行が入っていましたが、
dcを使わないならコメントアウトしてもいいけど面倒だから放置している程度の認識で、
まさかこの行が関係あるとは、必須だとは思いもしていませんでした。
702デフォルトの名無しさん:2010/07/29(木) 06:26:29
>>700
WTLのソース見れば簡単に分かることだが、
CPaintDCのコンストラクタ/デストラクタ内で、>>693に書いてる

> BeginPaint〜EndPaint呼ぶなり

をやってくれているだけだ。MFC版のも一緒。atlgdi.hを読んでみ
703デフォルトの名無しさん:2010/07/29(木) 08:26:39
そもそもWIN32の常識なんで基礎から勉強しなおせって感じ?
猫でもわかる〜あたりを通して読んどけば?

WIN32よくしらんでWTL使うのは無謀すぎると思うケドナー。
704デフォルトの名無しさん:2010/07/29(木) 08:54:49
WTLは、所詮win32使いの道具だからな。
win32知らないのにわざわざWTL使うなんてメリットないよ。
705デフォルトの名無しさん:2010/08/15(日) 07:13:14
CSplitterWindowで、垂直のボーダー区切りを水平のボーダーに変換するというか、
CSplitterWindowをCHorSplitterWindowのように変換するにはどのようにすればよいですか?
706デフォルトの名無しさん:2010/08/15(日) 11:57:59
水平垂直の区別ってテンプレート引数で与えてたのか
こりゃめんどくさそうだな
707デフォルトの名無しさん:2010/08/15(日) 12:26:33
二つ作っておいて
切り替えればいいんじゃね?
708デフォルトの名無しさん:2010/08/15(日) 12:38:44
SetParentでいけそう
709デフォルトの名無しさん:2010/08/15(日) 19:22:22
Set Parentってある意味すごい名前だな
710705:2010/08/16(月) 22:00:57
遅ればせながら。ご指摘の通り、SetParentを使用してみました。

CSplitterWindowとCHorSplitterWindowの変数を予め定義し、
CSplitterWindowのみ初期化しておき、変更時に

・CSplitterWindowの削除 (DestroyWindow)
・CHorSplitterWindowの作成 (Create)
・スプリッター表示領域の再設定 (m_hWndClient)
・内側のコントロールの親を再設定 (SetParent)
・内側のコントロールの配置設定 (SetSplitterPane)

のような作業をすることで、解決できました。どうもありがとうございました。
711デフォルトの名無しさん:2010/08/17(火) 01:39:14
別にスプリッタ作り直すまでしなくても
単に一方を非表示にするとかZオーダー変えて裏に隠すとかするだけでいいのでは
712デフォルトの名無しさん:2010/08/20(金) 18:20:18
それだとまたスレ違いになるじゃん
713デフォルトの名無しさん:2010/08/23(月) 03:18:32
タブコントロールに子ウィンドウくっつけて、
サブクラス化して、WM_SIZEが来たときに子ウィンドウのサイズをタブにあわせて変更しているんですが、
その後本来のコールバック関数を呼ぶと、
タブの位置関係が変わった際にタブウィンドウが再描画された上に、
子ウィンドウが再描画されず隠れてしまいます。

タブコントロール自体のサイズ変更を
WTLのCDialogResizeで行っているため、
タブコントロールをサイズ変更した後にWM_SIZEを捕まえられないのですが、
何か上手い解決方法はありませんでしょうか?
(CDialogResize使わないというのは置いといて…)
714713:2010/08/23(月) 03:40:06
補足なのですが、
タブコントロールのWM_PAINTひろって、子ウィンドウにInvalidate投げても、
子ウィンドウのスクロールバーだけ描画されません。
715デフォルトの名無しさん:2010/08/23(月) 19:33:09
WS_CLIPCHILDREN
716デフォルトの名無しさん:2010/08/23(月) 19:52:31
つかタブページのウィンドウって普通タブの子じゃなくてタブの兄弟ウィンドウとして
作るんじゃなかったっけ?

>>714
スクロールバーはクライアント領域に含まれないので
再描画を強制したいならInvalidateじゃなくRDW_FRAMEを指定してRedrawWindowを呼ぶ
717713:2010/08/24(火) 04:57:59
>>715
!!!
WS_CLIPCHILDRENとかWS_CLIPSIBLINGSの存在忘れてました!
…なぜにリソースエディタのプロパティのところで選択できないのか…

>>716
確かにだいたいのサンプルではタブの兄弟ウィンドウで書いてあるのですが…
タブが親ウィンドウいっぱいいっぱいでない場合は、
AdjustRectした後、タブのクライアント座標から、親ウィンドウのクライアント座標に変換しなきゃなので
めんどくさいような…?


いじっていて気づいたのですが、
OnSizeオーバーライドできないので、CDialogResize継承して
bHandled=FASLEでOnSize抜けるものを作るのは無理だと勝手に勘違いしてましたが、
(BEGIN_MSG_MAPのところの)ProcessWindowMessage関数はCDialogResize内から呼ばれないので、
ここを継承クラスで書き換えれば、CDialogResizeにチェインした後WM_SIZE捕まえられますね…

そんなことせんでも、WS_CLIPCHILDRENですべて解決ですが。
718デフォルトの名無しさん:2010/08/24(火) 05:15:27
よく分からんが解決しましたありがとうございましたってことなん?
719713:2010/08/24(火) 05:42:08
>>718
!
一番大事なこと書いてませんでした!


解決しました、ありがとうございました!!
720デフォルトの名無しさん:2010/08/28(土) 00:04:21
もう更新はないのかなあ・・・
721デフォルトの名無しさん:2010/08/28(土) 17:44:51
オープンソースなんだから
おまえが更新してパッチを送ればいいんじゃね?
722デフォルトの名無しさん:2010/08/28(土) 18:02:15
糞酢を混入させるな
723デフォルトの名無しさん:2010/08/29(日) 22:16:54
じゃあviksoeさんに任せとけばいいと思うよ
724デフォルトの名無しさん:2010/10/09(土) 16:09:41
ほしゅ
725デフォルトの名無しさん:2010/10/16(土) 15:58:05
Visual Studio Express 2008/2010 Expressで
WDKのATL7.1とWTL8.1を使用しているのですが
WTLのウィザードで生成したコードで
プロパティのATLの使用の項目が「ATLに動的にリンク」
になっているプロジェクトが生成された場合

stdafx.obj : error LNK2001: 外部シンボル "__forceAtlDllManifest" は未解決です。

というエラーが出てビルドできません。
どうすればATLに動的にリンクした状態でビルドできますか?

ちなみに、生成されたプロジェクトで
プロパティのATLの使用の項目が「ATLを使用しない」
となっている場合はビルドできます。
726デフォルトの名無しさん:2010/10/16(土) 16:30:01
不正利用してるからじゃないの?
727デフォルトの名無しさん:2010/10/16(土) 16:47:08
WDKのATLをVSから使うのはライセンス的には問題ない
728デフォルトの名無しさん:2010/10/17(日) 09:39:58
サンプルをビルドする以外には使ってはだめだっつうの
729デフォルトの名無しさん:2010/10/17(日) 09:51:22
WDK付属のlicense.rtfのどこにそんな記述があるのか具体的によろしく
730デフォルトの名無しさん:2010/10/17(日) 13:33:45
731デフォルトの名無しさん:2010/10/17(日) 14:08:40
さて、728の言い分を聞こうか。
732デフォルトの名無しさん:2010/10/17(日) 14:51:16
ソースが法律家じゃないようなパンピーのブログとは恐れ入るな
733725:2010/10/17(日) 14:56:59
いろいろ調べてみても、ほとんど情報が無くて分からない・・・

Expressだから駄目なんだろうか
734デフォルトの名無しさん:2010/10/17(日) 17:32:28
むしろソースが無でふんぞり返れるのに恐れ入るわw
735デフォルトの名無しさん:2010/10/17(日) 17:40:59
馬鹿にレスするのやめろっての
736デフォルトの名無しさん:2010/10/19(火) 05:16:27
http://www.microsoft.com/japan/whdc/devtools/wdk/RelNotesW7.mspx

2009 年 8 月] ATL のベスト プラクティス - Visual Studio リリースの使用

ATL は、ドライバー用の Windows アプレットを作成する必要のあるドライバー開発者の便宜のために WDK に含まれています。ATL は、この範囲を越えたソフトウェア開発のために使用しないでください。
737デフォルトの名無しさん:2010/10/19(火) 06:49:44
それは正規のライセンス文書じゃないし
どう頑張っても「サンプルをビルドする以外には使ってはだめ」とは読めない
738デフォルトの名無しさん:2010/10/19(火) 07:07:11
もう相手にしてあげなくていいよ。
739デフォルトの名無しさん:2010/10/19(火) 07:11:59
ドライバ作りに使ってくれと書いてあるだけで
サンプル以外ビルドするなとは書いてない。
740デフォルトの名無しさん:2010/10/19(火) 11:14:52
つーかWindowsがバージョンアップした際の追加APIなんて
大概COMで提供してんだから、いい加減ATLくらいWindows SDKに
最新の入れとけよって思うわ
741デフォルトの名無しさん:2010/10/19(火) 12:33:26
なぜ入れてないかを考えろ
金儲けの道具だからだ
742デフォルトの名無しさん:2010/10/31(日) 03:10:03
>732,737
ブログ(>639)に「MSが御社製品のexeやdllをビルドしていただけます、と返答してきた」と
書いてあるじゃないか。
法律専門家もクソも無い。

と激しく遅レス
743737:2010/10/31(日) 05:42:58
そのblogの内容は最初から知ってるし、オリジナルのライセンス文書を確認した上で
「サンプルのビルド以外での使用禁止」とかいうアホな主張に突っ込んでたんだが・・・
744デフォルトの名無しさん:2010/10/31(日) 12:31:09
たぶんレス番間違えたとみた。
745デフォルトの名無しさん:2010/10/31(日) 12:54:12
WTLはATLないと使えないんですか?
746デフォルトの名無しさん:2010/10/31(日) 13:02:21
使えません
747デフォルトの名無しさん:2010/11/04(木) 00:59:24
MFC、Win32++を超えるライブラリを作るスレ
http://hibari.2ch.net/test/read.cgi/tech/1286592582/
748デフォルトの名無しさん:2010/11/04(木) 12:54:22
.NETがあるじゃないか!
749デフォルトの名無しさん:2010/12/16(木) 20:27:07
VB6 で使用する ActiveX を 2010 の ATL10.0 で作った方はおられますか?

2010のATLウィザードが吐き出しただけのものをビルド・regsvr32で登録には成功しますが、
VB6 のコンポーネントダイアログからそのActiveXを追加しようとすると、
「"〜\testATL2.dll"を読み込めません」と表示されてしまい追加できません。

2005(ATL8.0)のATLウィザードが吐き出したものでは問題なくVB6に追加できていますし、
そのプロジェクトを2010にアップグレード・ビルドし直したものでも問題ありません。

とりあえず、最後の「2005で作成→プロジェクトを2010にアップグレード」の方法で一応事足りるのですが、
できれば 2010 だけで閉じて開発できれば…と考えています。
このあたりの事情をご存知の方はおられないでしょうか…。
750749:2010/12/16(木) 20:28:59
開発環境の情報がなくてすみません。
VisualStudio2005 Standard と
VisualStudio2010 Professional を使用しています。
751デフォルトの名無しさん:2010/12/17(金) 03:46:30
まずVB6を捨てます
752デフォルトの名無しさん:2010/12/17(金) 11:03:48
VB6ってIE1の頃か
753749:2010/12/17(金) 13:00:04
>>750
VB6で動くこと、というのはお客さんから提示された条件なので無理です(><)。

>>751
98年リリースらしいのでIE4はあったはず…。
754デフォルトの名無しさん:2010/12/17(金) 18:28:31
「2005のATLウィザードが吐き出したものを2010にアップグレードしたもの」と
「2010のATLウィザードが吐き出しただけのもの」を比較してみては?
755デフォルトの名無しさん:2010/12/19(日) 21:54:36
それにしても、WTLが一切更新されないな

これは、オープンソースにして逆に失敗したパターンだな
マイクロソフトの管理下だったらVisualStudioと共に
毎回更新されていたはず

何でもオープンソースにすりゃ良いってもんじゃないね
756デフォルトの名無しさん:2010/12/19(日) 21:57:29
オープンソースになった直後に溜まりに溜まってたバグが一気に修正されたじゃん
757デフォルトの名無しさん:2010/12/19(日) 22:18:18
バグが溜まってきたらオープンソースで無料修正おいしいですってことか
758デフォルトの名無しさん:2010/12/19(日) 22:27:38
バグって言ってもいずれは修正されただろうし
ずっと更新が無い方が問題だわな
759デフォルトの名無しさん:2010/12/19(日) 22:59:51
リポジトリの方はリボンとか追加されてるんだけどねー
760デフォルトの名無しさん:2010/12/19(日) 23:01:36
WTLはもう完成されてしまったんだよ!

ってまあオープンソースだと意見し辛くなるのはあるかもね。
文句があるならお前がやれって言われそうで。
761デフォルトの名無しさん:2010/12/19(日) 23:10:59
んじゃ、具体的に、どんな機能を追加してほしいの?
762デフォルトの名無しさん:2010/12/20(月) 00:44:16
viksoeスレでやれ
763デフォルトの名無しさん:2010/12/20(月) 07:35:51
>>755
WTLニュースグループで更新予定はあると明言されてる
764デフォルトの名無しさん:2010/12/20(月) 17:08:47
予定はみt
765デフォルトの名無しさん:2010/12/20(月) 17:28:01
>>763
あの記事がポストされてからワクテカで待ってるんだが
全然出る気配がねぇ

実際に出せる段階になったら発表しろ
766デフォルトの名無しさん:2010/12/20(月) 19:10:12
>>765
あれは聞かれたから答えただけだろw
767デフォルトの名無しさん:2010/12/21(火) 03:31:52
Expressバージョンで使えないから出ても使ってあげられませんね
768デフォルトの名無しさん:2011/01/01(土) 14:14:29
なんとなく思ったんだけどBEGIN_MSG_MAPマクロの引数って必要?
おまじない?
769デフォルトの名無しさん:2011/01/01(土) 14:47:02
今は不要だね
770デフォルトの名無しさん:2011/01/01(土) 18:56:17
てことは互換性のためてことかな。
個人的にはコピペするとき楽だからなくなってほしいけど…
771デフォルトの名無しさん:2011/01/02(日) 10:14:39
自分で定義すればいいじゃん
772デフォルトの名無しさん:2011/02/04(金) 08:53:27
マクロの引数自体は無意味だけど、あの書式に則っておくと、
リソースエディタでイベントハンドラを追加した時、あそこへ
メッセージハンドラ用マクロを差し込んでくれる。
773デフォルトの名無しさん:2011/02/13(日) 16:51:49
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/dwm01/index.html
↑のサイトを見ながら、ダイアログをAero化しています。
Buttonについては↑と同じクラスを作ってsubclass化することで、ボタンのみを
AeroGlass化させずできて見栄えも上手くいっていますが、
ダイアログ上のリストビューについては、
http://codepad.org/cVODhOPh
↑のようにボタンと同じやり方をすると、リストに項目を追加した際にリストの背景が真っ黒になってしまいます.
リストの背景色を白いままにするにはどうすればよいでしょうか?
774デフォルトの名無しさん:2011/02/13(日) 18:31:46
ttp://hiragino.blog74.fc2.com/blog-entry-42.html
では、ウィンドウの背景だけを透明化したらどうでしょう?WindowクラスのBackgroundプロパティを透明にすると
その他のコントロールは不透明のままになりましたが、クライアント領域の背景は透明ではなく黒くなってしまいました。
これはクライアント領域の後ろにも黒色のフレームがあり、ウィンドウの背景が透けてそれが見えているようになったためだと思われます。
775デフォルトの名無しさん:2011/02/13(日) 23:16:34
下手にスニーキングするより開き直った方が楽だなw
776デフォルトの名無しさん:2011/02/14(月) 00:08:06
リストボックスやダイアログに対して、以下のように
DWM_BLURBEHIND blur = { DWM_BB_ENABLE | DWM_BB_BLURREGION, TRUE, nullptr, FALSE };
DwmEnableBlurBehindWindow(listBox_, &blur); // リストビューに対して適用
DwmEnableBlurBehindWindow(m_hWnd, &blur); // ダイアログに対して適用
と DwmEnableBlurBehindWindow を適用してみましたが、やはりリストボックスに
項目を追加すると、背景が黒くなってしまいます。
何かいい方法はないでしょうか?
777デフォルトの名無しさん:2011/02/14(月) 01:52:07
DWM_BB_BLURREGION 入れてるのに region ねー
778デフォルトの名無しさん:2011/02/14(月) 02:04:01
NULLを入れると全体が対象になるので、問題ないと思います
779デフォルトの名無しさん:2011/02/14(月) 02:12:10
リストのアイテムにも設定しないといけないんじゃない?
780デフォルトの名無しさん:2011/02/14(月) 02:57:04
リストの各アイテムにウィンドウハンドルがあって、それにも
DwmEnableBlurBehindWindow をするってことでしょうか?
781デフォルトの名無しさん:2011/03/05(土) 03:30:13.23
WTLでRibbonなUIは作れますか
782デフォルトの名無しさん:2011/03/05(土) 08:58:31.22
リポジトリのだと実装されてるね。ちゃんと動くか知らんけど
783,,・´∀`・,,)っ-○○○:2011/03/12(土) 11:50:20.29
CPLとはいえRibbonはMSの特許が絡むから完全に自由には使えないぞ
詳細はOfficeの開発者ライセンスを参照のこと
784デフォルトの名無しさん:2011/03/13(日) 12:18:48.39
Windows 7 には Ribbon の API あるし、
Vista も Platform Update で使えるようになるんじゃなかったかな。
もしそれを利用してるのなら問題ないはず。
Vista より前のOSは動作対象外になるけど。
785デフォルトの名無しさん:2011/03/27(日) 21:42:18.91
_beginthread の引数(スレッド関数の引数)に、CSimpleArray* 渡しても
何か問題が起きたりしないよね??
786デフォルトの名無しさん:2011/03/28(月) 01:27:10.92
フレームウインドウから子ウインドウを作成すると、
「0xC000001E: 無効なロック シーケンスを実行しようとしました」
というメッセージが出てウインドウを作成できない。
子ウインドウは普通のCWindowImpl。
787デフォルトの名無しさん:2011/03/28(月) 11:36:43.96
>>785
C言語の基礎から学ぶべき
788デフォルトの名無しさん:2011/03/28(月) 23:40:48.84
だがC言語の基礎ではスレッドについて学べないな
789デフォルトの名無しさん:2011/04/17(日) 02:12:48.81
しかし、ネタが無いね。
790 忍法帖【Lv=8,xxxP】 :2011/04/18(月) 02:24:36.51
790
791デフォルトの名無しさん:2011/04/18(月) 03:24:40.24
韓国、被災企業の工場移転打診=部品・素材産業の高度化狙い

東日本大震災後、韓国政府が被災で操業停止などに追い込まれた日本企業の工場を
韓国に移転するよう促す案を、日本政府に非公式に打診していたことが17日、明らかになった。
韓国では、主力企業のサムスン電子や現代自動車などを生産面で支える部品・素材産業の
高度化が課題となっており、日本企業誘致のため造成した工業団地への進出を改めて訴えている。
(2011/04/18-02:34)

http://www.jiji.com/jc/eqa?g=eqa&k=2011041700165
792片山博文MZ:2011/04/19(火) 09:15:52.86
フリーでATL風のライブラリ、ない?
793デフォルトの名無しさん:2011/04/19(火) 09:36:46.55
意味不明。
794デフォルトの名無しさん:2011/04/19(火) 11:15:57.78
ATL使えよ・・・
795デフォルトの名無しさん:2011/04/19(火) 21:36:41.41
こういう奴に限って COM じゃなくて CSimpleArray が使いたいだけとか
言い出すんだよな。

まぁ ATL 使えよ。金払え。
796デフォルトの名無しさん:2011/04/19(火) 21:49:25.06
どこかで見たことある名前だと思ったら
MFC風ライブラリ作ってる人だな。
viksoeさん目指して頑張れ

MFC、Win32++を超えるライブラリを作るスレ
http://hibari.2ch.net/test/read.cgi/tech/1286592582/
797デフォルトの名無しさん:2011/04/20(水) 07:38:35.65
>>796
この人いろいろとだめだな…
798デフォルトの名無しさん:2011/04/21(木) 00:40:01.11
>>797
まぁ子供のお遊びレベルだからな
活性化しないム板に子供用砂場が1つくらいあっても誰も文句言うまい
799片山博文MZ:2011/04/25(月) 12:39:09.27
>>796 応援ありがと!
>>797 何が?
>>798 すぐに砂場をディズニーランドにして見せますよ。
800片山博文MZ:2011/04/25(月) 13:22:25.37
ATLに代わるライブラリが存在しないということですか。。。
残念です。
801デフォルトの名無しさん:2011/04/25(月) 14:29:16.06
いや代わりに出したのが.netなんだが。
802デフォルトの名無しさん:2011/04/25(月) 16:00:02.82
wtlは開発終了してるのか
803デフォルトの名無しさん:2011/04/25(月) 18:24:20.92
>>800
馬鹿かおまえ。
804デフォルトの名無しさん:2011/04/26(火) 01:52:12.45
>>802
今は viksoe たんを見守るステータスになってる
805デフォルトの名無しさん:2011/04/26(火) 12:07:04.97
MS自身はWTL使ってるプロジェクトないの?
806デフォルトの名無しさん:2011/05/05(木) 08:30:59.80
XPからできたSetWindowSubclass系を使えば、
サンクいらなくなる?
つかこれdwRefDataはどうやって管理してんだろ?
807デフォルトの名無しさん:2011/05/05(木) 09:30:07.17
いいえ。必要です。
808デフォルトの名無しさん:2011/05/23(月) 14:25:08.57
CDialogResizeでつけたGripの背景色はどうやれば変更できるんでしょうか?
WM_CTLCOLORSCROLLBARは通知されないみたいです
809デフォルトの名無しさん:2011/06/05(日) 21:08:27.49
WTLにはレイアウトマネージャーないの?
810デフォルトの名無しさん:2011/06/05(日) 22:42:17.05
CDialogResizeじゃだめなん?
811デフォルトの名無しさん:2011/06/05(日) 22:45:36.53
>>810
ダイアログ以外にも使えるやつない?
812デフォルトの名無しさん:2011/06/06(月) 12:02:47.17
CWindowImplを継承したビューの中に
CWindowImplを継承した他のビューを表示してるサンプルがあったら教えてくれ。
813デフォルトの名無しさん:2011/06/11(土) 21:06:01.58
CATLMapで
Lookupして最初の一つが見つかった後、続けて同じキーを探す方法がわからんです
どうやったらいいですか?
814デフォルトの名無しさん:2011/06/11(土) 21:19:37.85
1つのキーでは1つの値しか管理できないんじゃないの
815デフォルトの名無しさん:2011/06/11(土) 21:31:51.73
すみません根本的に物凄い勘違いしたかもです><
基本的なとこから見直してきます
816デフォルトの名無しさん:2011/06/12(日) 19:37:49.52
日本語抜平仮名無問題会話施行。
817デフォルトの名無しさん:2011/06/12(日) 19:53:30.40
群馬県高崎市に住む39歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。

とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。

復興支援アニメ.mp4
http://www.youtube.com/watch?v=yn4uTiN8vvM

湾岸鉄道キャンペーンCM(カラー).mp4
http://www.youtube.com/watch?v=g3PlX1OAhug&feature=channel_video_title


これは力作で、にしおかすみこさんにも是非見てもらいたかったため彼女のブログにコメントしたんですが無視されました。
http://blog.watanabepro.co.jp/nishiokasumiko/archives/2008/02/22_15_post_22.html
(下の方にあります。投稿者: hekeneko | 2008年03月24日 22:54)
やはり私の才能に気づいてくれる人は中々いないみたいですね(苦笑)。


題名”ラダニアムの翼”
A wing of radaniam_partU.mp4
http://www.youtube.com/watch?v=keSK70uqDJY
A wing of radaniamu part_V.mp4
http://www.youtube.com/watch?v=-LRZbXbirR0

題名”hekeneko honey”
http://www.youtube.com/watch?v=kATwf6fAkG8
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。
818 忍法帖【Lv=15,xxxPT】 :2011/06/17(金) 23:00:32.13
てst
819デフォルトの名無しさん:2011/07/03(日) 15:13:17.68
保守
820 忍法帖【Lv=8,xxxP】 :2011/07/25(月) 22:42:18.30
保守
821デフォルトの名無しさん:2011/07/28(木) 10:53:16.80
WTLってもう終了なのか?
頼みのnenadstefanovicたんも1年以上コミットないし。
bugfixもあるから新版出して欲しいんだけど、見込なしかな?
822デフォルトの名無しさん:2011/07/28(木) 17:39:38.32
みんなレイアウトマネージャなしでどうやって書いてるんだ。
リサイズするたびにウィンドウ内の配置変えてるの?
823デフォルトの名無しさん:2011/07/28(木) 18:18:01.78
ダイアログリサイズとか
824デフォルトの名無しさん:2011/07/28(木) 21:22:12.84
WTLはもう十分な気もする。
今でもまだWTLでゴリゴリ書いてるが、あんまり不便を感じない。
ラピッドデベロップメントではない分、自由だからまだ好き。

>>822
毎回計算してMoveWindow()
面倒な時はスプリッタ
825822:2011/07/28(木) 23:50:54.14
そんな感じなのかー
ありがと。
826デフォルトの名無しさん:2011/07/29(金) 15:46:37.97
レイアウトマネージャって内部的にはどういう処理してんの?
設定した領域が変化した時に内側のコントロールを調整する役割を持つ感じ?
827デフォルトの名無しさん:2011/07/30(土) 02:49:48.30
メタクラス
828 忍法帖【Lv=40,xxxPT】 :2011/08/03(水) 22:23:43.26
Vc++ 2010 express で、wtlを使用した
ダイアログアプリを作成しようと
思うのですが
Atlがないので無理ということ
なのでしょうか?

また、
他にダイアログアプリを作る
方法があれば、教えて頂けませんか?

829デフォルトの名無しさん:2011/08/03(水) 22:38:34.71
Win32で書けばよろし。
830デフォルトの名無しさん:2011/08/03(水) 22:41:58.27
Vc++ 2010 express なら ATL/WTL は諦めれ
831 忍法帖【Lv=40,xxxPT】 :2011/08/04(木) 00:49:55.37
分かりました。
832 忍法帖【Lv=40,xxxPT】 :2011/08/04(木) 01:00:06.40
Dxライブラリなるもので
やってみます。
833デフォルトの名無しさん:2011/08/04(木) 17:15:58.62
wdkに付いてるのは使っちゃいけなかったんだっけ
834デフォルトの名無しさん:2011/08/04(木) 19:55:43.74
835デフォルトの名無しさん:2011/08/04(木) 22:39:27.78
836 忍法帖【Lv=40,xxxPT】 :2011/08/04(木) 23:05:43.49
Vc++ 2010 express で
フリーのリソースエディタを
使うという話がありますが
あれは、vc 2008 standardなどの
Atlを使うということですか?
837 忍法帖【Lv=40,xxxPT】 :2011/08/04(木) 23:30:12.22
リソースエディタって何のために
使うのかな?と思いまして。
838デフォルトの名無しさん:2011/08/04(木) 23:30:17.00
それっぽい単語を適当に並べてみて、質問っぽいことを書いてみました、ってことでOK?
839デフォルトの名無しさん:2011/08/04(木) 23:44:06.16
たんぱく質ばかり食べてると屁が腐る
840 忍法帖【Lv=40,xxxPT】 :2011/08/06(土) 21:12:03.25
かけない?
841 忍法帖【Lv=40,xxxPT】 :2011/08/06(土) 21:14:21.13
>>836
解決した。
ダイアログは、win32で作ることですが、
できるのですね。

842デフォルトの名無しさん:2011/08/26(金) 11:31:41.34
復帰
843 忍法帖【Lv=40,xxxPT】 :2011/08/26(金) 23:46:19.71
なにが?
844デフォルトの名無しさん:2011/09/11(日) 14:07:59.92
WTL Helperの2010版はないんでしょうか
845デフォルトの名無しさん:2011/09/17(土) 08:21:45.88
WTLで作ってるとWPFが使いたくなる。
WPFで作ってるとWTLが使いたくなる。
846デフォルトの名無しさん:2011/09/18(日) 21:49:34.98
グループボックスって、専用のクラスはないのでしょうか?
CGroupBox みたいな名前であるかと思ったのですが、ありませんでした。
847デフォルトの名無しさん:2011/09/18(日) 22:41:29.71
グループボックスって専用クラス作ってまで操作することあったっけ?
848デフォルトの名無しさん:2011/09/19(月) 23:38:13.49
CScrollContainerの縦スクロールだけ使いたいんだけどいい方法ある?
CScrollContainerのリサイズに合わせて子ウィンドウをリサイズするだけだと
一瞬横スクロールバーが見えてしまう。
849デフォルトの名無しさん:2011/09/20(火) 00:56:14.02
試してないけどソース見たら SCRL_DISABLENOSCROLLH なるフラグがあったけど
これは試した?
850デフォルトの名無しさん:2011/09/20(火) 00:57:34.73
ああごめん、これはスクロールバーを常に表示するフラグか
全く逆だった
851デフォルトの名無しさん:2011/09/22(木) 07:58:23.15
WS_VSCROLLで表示したスクロールバーをオーナードローする方法ない?
最終的には全てのコントロールをオーナードローしたいんだが。
852デフォルトの名無しさん:2011/09/22(木) 08:09:54.08
無い
853デフォルトの名無しさん:2011/09/22(木) 09:03:13.67
いつの間にかWTL8.1出てたんだ
854デフォルトの名無しさん:2011/09/22(木) 10:02:38.92
新バージョン出たのか?と思って見に行ったら2年以上前の話じゃねーか
855デフォルトの名無しさん:2011/09/22(木) 11:53:38.43
WTL最新版でリボン使えるっていうから試してみたけどXPじゃつかえないのか。
MFCなら行けなかったっけ。
856デフォルトの名無しさん:2011/09/22(木) 22:06:55.57
CReBarCtrlを使わないで
CCommandBarCtrlをメニューとして表示してるサンプルない?

CReBarCtrlのバグっぽい動作によってグリッパーを消せないでいる。
857デフォルトの名無しさん:2011/10/15(土) 23:05:41.57
WTLで大きめのプログラム作るときどんな設計にしてる?
MVP?MVVM?
858デフォルトの名無しさん:2011/10/18(火) 19:46:45.04
過疎すぎ。
みんなどこいったんだ。
.NETか?WPFか?Qtか?
859デフォルトの名無しさん:2011/10/18(火) 22:11:55.01
>>858
ネタがないだけ。
860デフォルトの名無しさん:2011/10/19(水) 08:56:14.37
ブラウザに埋め込むActiveXコントロールを作るのに、
C++とATL/WTLを使いたいと思っているのですが、
WTLって上記の用途に使えます?
画面自体は簡単なダイアログレベルのものなのですが…。
861デフォルトの名無しさん:2011/10/19(水) 11:54:17.45
>>860
activeXならATLだけでいいんじゃないのかなあ?
作ったことないからよーしらんけど。


自作のWTLソフト、win7までは素直にさくさく動くんだけど
win8dpに入れたら起動が妙にとろい。
まあ、同じWTLのDonutはまあまあだったから
別の問題かもしれないけど。
Atom Z初期型マシンに入れる自分も自分だがw
862デフォルトの名無しさん:2011/10/20(木) 13:12:11.51
>>860
普通に使える
使わない理由がない
863デフォルトの名無しさん:2011/10/21(金) 08:07:39.66
>>861、862
回答有難うございます。
簡単なダイアログ程度ならATLだけでも十分そうですが、
もう少し調べて、判断することに致します。
864デフォルトの名無しさん:2011/10/21(金) 23:47:23.39
CDoubleBufferWindowImplって子ウィンドウまで含めてダブルバッファリングしてくれる?
865デフォルトの名無しさん:2011/10/21(金) 23:49:02.51
してくれるわけがない
866デフォルトの名無しさん:2011/10/22(土) 09:25:25.12
ありがと
867デフォルトの名無しさん:2011/10/22(土) 10:58:10.31
WTLの開発もう完全に詰んでるだろ

はやく開発をMSに戻せ
868デフォルトの名無しさん:2011/10/22(土) 11:00:09.62
はい
869デフォルトの名無しさん:2011/10/22(土) 12:03:33.46
ATLはMSでも開発が滞っていますが
870デフォルトの名無しさん:2011/10/23(日) 00:28:56.66
詰んでるというか完成されたというか
あと何が必要だよ
871デフォルトの名無しさん:2011/10/23(日) 00:47:32.20
>>870
人によってはリボンじゃね?

自分は別にいらんけど。
ぶっちゃけドキュメントもいらない気がした。
872デフォルトの名無しさん:2011/10/23(日) 10:02:48.57
グリッドも欲しくないか?
873デフォルトの名無しさん:2011/10/23(日) 11:38:07.85
完成されてるとか何の冗談だ
まだバグだらけけじゃねーか
874デフォルトの名無しさん:2011/10/27(木) 23:10:34.77
>>856
これは?
You cannot remove RBBS_NOGRIPPER flag from rebar band
http://alax.info/blog/1187
875デフォルトの名無しさん:2011/11/10(木) 21:11:24.51
ウィンドウのサイズを変更してもステータスバーのサイズが自動で変更されないんだけど、
自分でMoveWindowしないといけないの?
876デフォルトの名無しさん:2011/11/10(木) 22:56:46.95
フレームウィンドウのメンバにいれてれば自動
それ以外の普通のステータスバーなら自分で移動
877デフォルトの名無しさん:2011/11/23(水) 11:43:59.88
メニュー系のメッセージハンドラでDestroyMenuが呼ばれるってバグを
1ヶ月ほど前に報告していて人がいたけど、よく今まで気付かれなかったな。
878デフォルトの名無しさん:2011/11/24(木) 18:55:36.45
WTL 8.1.11324
879デフォルトの名無しさん:2011/11/24(木) 23:03:40.36
WTL 8.1.11324 のAppWizardをインストールしたけど
「文字が正しくありません」というスクリプトエラーでプロジェクトファイル作られない・・・
880デフォルトの名無しさん:2011/11/26(土) 10:10:05.03
何変わったんだろ
881デフォルトの名無しさん:2011/12/03(土) 06:59:22.84
何となくC#触ってみたらあまりにも細部まで充実していて泣けてきた
でC++なんて捨ててやろうと思ってWPF勉強してみたけど糞すぎて戻ってきたよ
882デフォルトの名無しさん:2011/12/03(土) 09:59:36.09
細部まで充実ってどんなこと?
883デフォルトの名無しさん:2011/12/03(土) 17:42:55.37
インテリセンスが一番落差があるな
あとはコード内外にしっかりドキュメントがあったり
884デフォルトの名無しさん:2011/12/03(土) 21:59:30.47
WPFじゃなくてWinFormじゃだめだったの?
885デフォルトの名無しさん:2011/12/04(日) 03:04:41.23
WinFormってもうMSから見捨てられてるんでしょ?
886デフォルトの名無しさん:2011/12/04(日) 21:32:32.88
ユーザからは逆にWPFが見放されている。
いつものごとくMSは軌道修正するよ。
887デフォルトの名無しさん:2011/12/04(日) 23:04:38.72
WPFってWinFormのラッパーみたいなもんじゃないの?
888デフォルトの名無しさん:2011/12/04(日) 23:54:55.19
WinFormsはWin32のラッパーだけど
WPFはだいぶ違うよ。
889デフォルトの名無しさん:2011/12/05(月) 12:20:14.83
WPFだと動的にコントロールを生成したりするところで面倒になって投げ出した
890デフォルトの名無しさん:2011/12/05(月) 20:21:45.35
大昔のVBで聞いたような話だな
891デフォルトの名無しさん:2011/12/23(金) 18:23:19.16
so-software見てもWTLのデフォルトテンプレート見ても、
どうもヘッダファイルにロジックをゴリゴリ書いているように見えるんだけど
WTLの流儀ってこういうもん?
なんでこんなところにロジック書くのかよくわからないんだけど
892,,・´∀`・,,)っ-○○○:2011/12/23(金) 18:29:07.48
テンプレートだから。
893デフォルトの名無しさん:2011/12/23(金) 18:29:17.42
yes
894デフォルトの名無しさん:2011/12/23(金) 18:32:47.50
慣れるとcppファイルを使いたくなくなるんだよなぁ。俺だけ?w
895デフォルトの名無しさん:2011/12/23(金) 18:57:48.88
テンプレートクラス作ったことない人なのかな
896,,・´∀`・,,)っ-○○○:2011/12/23(金) 19:13:05.65
C++/CLIの生成するスケルトンもヘッダに実装書いてるぜ
897デフォルトの名無しさん:2011/12/23(金) 20:51:46.90
すげぇこのスレが動いた!!

って、テンプレートクラスって普通ヘッダに実装書くんだ。しらなかった。
なんのためにそんなことしてるんだ?
ロジックを追加するときにどこに書いたらいいかわからないんだ
898デフォルトの名無しさん:2011/12/24(土) 01:32:06.38
>>897
仕様確認してから言え
899デフォルトの名無しさん:2011/12/24(土) 01:39:12.04
>>897
どんだけC++初心者なんだよw
900デフォルトの名無しさん:2011/12/24(土) 01:42:06.30
そこでexportがなんたらかんたら
901デフォルトの名無しさん:2011/12/24(土) 02:18:34.11
コンパイラの都合なんざ無視だぜ!
902デフォルトの名無しさん:2011/12/24(土) 02:18:38.63
でも直接テンプレートになってないあたりは
cppに書くとコンパイル加速装置だお。

...慣れないままいきなり書いたら中途半端な分け方になっちまったぜorz
903デフォルトの名無しさん:2011/12/24(土) 07:25:32.29
今回誰も日本語化しないな

もはや使っている人間がいないのか
まあダウンロード数見ても日本で使ってるの
数十人くらいに思えるw
904 ◆0uxK91AxII :2011/12/24(土) 07:37:14.26
*.hの最後辺りで、*.cppをinclude
905デフォルトの名無しさん:2011/12/24(土) 10:29:51.15
俺はロジックは全部ヘッダーに書く派だわ
906,,・´∀`・,,)っ-○○○:2011/12/24(土) 13:42:29.15
逆に1ファイル内でしか使わない使い捨てのテンプレートならcpp側に書いちゃうけどね俺は
namespace {
template <int ..> struct hogehoge {...}
};
907デフォルトの名無しさん:2011/12/24(土) 18:35:35.13
複数ファイルで共有しないものはヘッダに書かないってのは基本だろ。
908デフォルトの名無しさん:2011/12/24(土) 18:44:27.45
>>907
Cなら基本だな。C++は知らん
909デフォルトの名無しさん:2011/12/26(月) 07:32:28.38
ヘッダー実装は最近の流行だよ
910デフォルトの名無しさん:2011/12/26(月) 10:57:29.20
悪い流れを断ち切りたい
911デフォルトの名無しさん:2011/12/26(月) 19:24:42.07
何故ヘッダー実装が悪いのか分からん
912デフォルトの名無しさん:2011/12/26(月) 19:29:30.99
C言語を引きずってるとヘッダー実装は悪く感じない?
913デフォルトの名無しさん:2011/12/26(月) 21:01:44.09
>>911
依存度が必要以上に増えちゃうから

インクルードするインターフェースに依存するだけですむはずのところが
実装にも依存してしまうから

でしょう
914デフォルトの名無しさん:2011/12/26(月) 23:07:59.71
でも最近の言語ってヘッダと実装わかれてないよね
915デフォルトの名無しさん:2011/12/26(月) 23:14:46.85
もともとコンパイラが馬鹿なのを人間に押し付けただけだから
916デフォルトの名無しさん:2011/12/26(月) 23:15:59.13
言語仕様でいうならCの時代から別れてなんてないよ
917デフォルトの名無しさん:2011/12/26(月) 23:51:14.70
おい誰か早く最新版を日本語化してくれよ!
918デフォルトの名無しさん:2011/12/27(火) 13:11:16.43
>>911
だってコンパイル重いじゃん。。。
別に10分かかるわけじゃないけど。
919デフォルトの名無しさん:2011/12/27(火) 13:39:53.56
昔はヘッダファイル開けば、実装されてる関数の定義が羅列されてるだけだったから
関数の名前と引数見れば一瞬でどんなのが用意されていてどう使えばいいかが分かったけど

今はヘッダーに実装までされてるから一覧として見難いんだよな。他人のソース見る
ときはそれが嫌。cppに実装してくれと思う。
自分で実装するときはヘッダーにゴリゴリ書くがなwww
920デフォルトの名無しさん:2011/12/27(火) 20:04:43.95
>>919
逆にhとcppの2つのファイルを巡るのがダルイ
ま、一覧としては見づらいのは確かにある
921デフォルトの名無しさん:2011/12/27(火) 20:21:27.77
922デフォルトの名無しさん:2011/12/27(火) 21:00:32.74
>>919
IDEが一覧を抽出してくれる
923デフォルトの名無しさん:2011/12/27(火) 22:25:18.94
>>921
そのサイト毎日チェックしてたのに
よりによって今日出したのかwww

そことRaptは毎日チェックしてたが
これでその仕事から解放されるおwww
924デフォルトの名無しさん:2011/12/28(水) 02:06:10.19
WTLでリボン使えるようになってたのか
幅が広がるのはありがたいが、いらねーw
925デフォルトの名無しさん:2011/12/28(水) 07:50:50.08
プログラマなのにRSS購読知らない奴おるん?
926デフォルトの名無しさん:2011/12/28(水) 08:02:17.49
RSS購読とか情弱しか使わんて
927デフォルトの名無しさん:2011/12/28(水) 12:16:14.37
ねっとさーふぃんが楽しいのだ
928デフォルトの名無しさん:2011/12/28(水) 12:25:29.08
俺も情弱だからRSSとか使わないな
IDEの各種機能もほぼ使わない。VSだとクラスとか関数一覧からじゃなくて、ファイル一覧からソース開いてるしw
929デフォルトの名無しさん:2011/12/28(水) 12:39:43.52
今でもprintfデバッグが主力です。
930デフォルトの名無しさん:2011/12/28(水) 12:55:10.29
俺もRSSって一度も使ったことがないな
周りでも使ってる人見たこと無いんだが、どこで使われてるのか

ところで、ATLを使用しないWTLって開発されてたと思うんだが
今どうなってるか分かる人いる?
もしくは、どこで開発情報を手に入れられる?
931デフォルトの名無しさん:2011/12/28(水) 13:09:30.34
>>930
今はこっちのURLなのかな?試したらレポよろ
ttps://www.ohloh.net/p/wtl-plus


276: デフォルトの名無しさん 2008/09/21(日) 18:54:22 [sage]
ATLを使わないWTLってどこにあんの?
あるなら欲しいな。

278: デフォルトの名無しさん 2008/09/21(日) 20:57:43 [sage]
>>276
探せばいろいろ出てきそうではあるが一例

WTL++
ttp://code.google.com/p/wtl-plus/

WTL++ is not based on MFC, ATL or WTL.

これは一人でやってるぽい?ついさっき更新されてた
932デフォルトの名無しさん:2011/12/28(水) 13:37:10.46
>>931
試す以前にソースが無いw
933デフォルトの名無しさん:2011/12/28(水) 13:52:37.50
>>932
ほんとだ。わろたw
setup.exeからインストールするのか?怖くて試してないがこっちはどうかな?
ttp://en.pudn.com/downloads205/sourcecode/windows/control/detail966991_en.html
934デフォルトの名無しさん:2011/12/28(水) 15:44:45.65
俺もRSSって一度も使ったことがない
935デフォルトの名無しさん:2011/12/28(水) 16:15:03.53
>>929
せめてトレースポイント使おうぜ
936デフォルトの名無しさん:2012/01/01(日) 11:29:45.62
WTLのGetSystemSettingsってのは何をしているのか教えてくれないか?
937デフォルトの名無しさん:2012/01/01(日) 13:12:34.52
ソース読め。全部書いてあるんだから。
938デフォルトの名無しさん:2012/01/01(日) 17:05:51.64
>>937
お前も不親切な奴だなー。知ってるなら教えてやれよw
俺が見つけたところのGetSystemSettingsはレイアウト調整用にGetSystemMetrics呼び出してメンバーに値いれてる。
詳しくはソース読めwww

GetSystemSettingsなんて名前だからシステム設定を呼び出せるようにラッパーしてある関数だと思ったけど何にも使え
なさそうだな
939デフォルトの名無しさん:2012/01/01(日) 18:12:42.85
win32知らないのにWTL使うメリットなんてなかろう。
940デフォルトの名無しさん:2012/01/13(金) 00:40:37.80
4,5年ぶりに昔書いたコードみたら全然読めなくなっててわろた
久々に作りかけのアプリ開発再開しようと思ったが挫折しそうになったが
一カ月ほど掛かったがやっとカンを取り戻せてきた
941デフォルトの名無しさん:2012/01/13(金) 00:42:16.91
>>940
> 4,5年ぶりに昔書いたコードみたら全然読めなくなっててわろた
そんなん滅茶苦茶あたりまえ
自分のコードが他人のコードに思えるのには6ヶ月で十分
942デフォルトの名無しさん:2012/01/13(金) 00:56:10.70
>>941
読み始めたときは昔のオレすげーて思て衰えを感じたが
読めるようになってくると、なぜもっとコメント書かぬのだと憤慨する
943デフォルトの名無しさん:2012/01/13(金) 01:00:37.36
>>942
それ、ものっ凄い普通
つまり、ものっ凄い普通
30歳台かの?
944デフォルトの名無しさん:2012/01/13(金) 01:06:11.49
>>943
はい
ただやっぱり色々考えるようになったが、開発スピードは落ちたのは実感する
悲しいことに部品作ってるときが今一番しあわせかも
945デフォルトの名無しさん:2012/01/13(金) 01:16:32.73
>>944
スピード落ちたような気がするのは色々なことに気が回るからじゃ
総合的にかかる時間つまりスピードは向上しておる

部品作りは楽しいものじゃ
外的要因が少なく理想に近付けるから

午前の4時間は20歳台のアホを育成することに努力し
何れはあ自分が好きなことをできるように

午後の4時間は(午前の部が完璧にこなせれば)好きなことに努力

これが理想だがのう。
946デフォルトの名無しさん:2012/01/13(金) 01:25:38.99
>>942
>読み始めたときは昔のオレすげーて思て衰えを感じたが
あるあるw

俺も久々にWTLさわったら昔ながらのハンガリアン記法にうっ!となったわ。
947デフォルトの名無しさん:2012/01/13(金) 01:25:50.86
>>945
なるほど
勇気が湧いてきた
948デフォルトの名無しさん:2012/01/13(金) 01:33:43.30
>>945

仕事でやる開発は何故こんなにもツマラナイものなのか
外部要因が多すぎて、調整と説明説得で精神が削り取られるだけ

昔は自分が作ったものを使ってもらえる喜びがあったが
今じゃ、そんなこと手でやれよと思うぐらいつまらない


949デフォルトの名無しさん:2012/01/13(金) 01:41:18.80
自作の便利なテンプレートクラス/ライブラリの評論会やろうよ
950デフォルトの名無しさん:2012/01/13(金) 06:38:05.04
言い出しっぺの
951デフォルトの名無しさん:2012/01/13(金) 08:05:24.42
実が出た
952デフォルトの名無しさん:2012/02/05(日) 23:22:42.02
HTMLページビューでアプリケーション内で作成したhtmlドキュメントを
表示させたいのですがそういう方法ってあるのでしょうか?
それとも一度ローカルにファイル保存しないとだめでしょうか
953デフォルトの名無しさん:2012/02/05(日) 23:29:06.65
QueryControlでIWebBrowser2を取得して
IWebBrowser2からget_DocumentでIHTMLDocument2を取得して
IHTMLDocument2.writeでhtmlを流し込む
954デフォルトの名無しさん:2012/02/05(日) 23:47:58.49
ありがとうございます!
955デフォルトの名無しさん:2012/02/07(火) 06:58:13.53
すみませんまだだめでした
get_DocumentでIHTMLDocument2を取得する際に必ず失敗します
なにか手順とかあるんでしょうか
956デフォルトの名無しさん:2012/02/07(火) 08:15:16.82
CComPtr<IDispatch> pDisp;
IWebBrowser2->get_Document(&pDisp);
CComQIPtr<IHTMLDocument2> spDocument(pDisp);
957デフォルトの名無しさん:2012/02/07(火) 18:45:08.09
>>956
なんどもすみません
そのコードだとget_DocumentがS_FAILEになってしまいます。
書いたコードは以下のとおりです

INT_PTR CAddToMyListWindow::OnCreate(LPCREATESTRUCT lpCreateStruct){
LRESULT lRet = DefWindowProc();

HRESULT hRet = QueryControl(&m_pWB2);
if(SUCCEEDED(hRet)){
DispEventAdvise(m_pWB2, &DIID_DWebBrowserEvents2);
}



CComPtr<IDispatch> pDisp;
HRESULT dRet = m_pWB2->get_Document(&pDisp); //<-S_FAILEになる
CComQIPtr<IHTMLDocument2> spDocument(pDisp);


return lRet;
}
958デフォルトの名無しさん:2012/02/07(火) 18:50:22.71
>>957
IEコントロールが作成された時点ではまだドキュメントは作られてないんだから当たり前
DocumentCompleteまで待たないと
959デフォルトの名無しさん:2012/02/07(火) 19:02:14.07
ウィザードの自動生成により、コマンドバーを利用しています。
標準の状態だと、コマンドバー(ReBar付きのメニューバー)のトップレベルアイテムがフラットな色で描画されてますが
これをfoobar2000のコマンドバーみたいにシステム標準の雰囲気にしたいです。方法を教えて下さい。よろしくお願いします。

ttp://i42.tinypic.com/x2rk0m.png
ttp://i43.tinypic.com/x4rsja.png
960デフォルトの名無しさん:2012/02/07(火) 19:07:26.19
>>958
どこにもアクセスしていない状態でやるなら
一度ダミーのURLかhtmlファイルにアクセスしないといけないということでしょうか。
なんとなく無駄な処理をしているような気がして腑に落ちない気もしますが・・・
961デフォルトの名無しさん:2012/02/07(火) 19:27:42.03
>>959
簡単な方法はない
自分ででコマンドバー弄れ

>>960
about:blank開けばいい
962デフォルトの名無しさん:2012/02/07(火) 19:29:39.64
>>960
ダミーURLとかabout:blankアクセスしたときもDocumentCompleteまたないとダメ
面倒だけどそういうもんだと思って割り切らないとIEはいじれない
963デフォルトの名無しさん:2012/02/07(火) 19:39:28.51
>>961,>>962
ありがとうございます。これで作業が進められそうです
964デフォルトの名無しさん:2012/02/07(火) 22:50:02.08
Webで公開されている、javascriptで開けれる小窓をCookie指定してあげて
開きたいのですが、出来ますでしょうか?
厄介なのはIEコンポーネントが元から持っているCookieの値を消して新たに独自で定義したCookieを指定してあげたいのですが、
どうもNavigateやOnBeforeNavigateのリファレンスを見てもヘッダーをいじれるのは自分でついかしたもののみみたいなんです。
コンポーネントが元から持ってきたヘッダ情報をいじるのは無理なんでしょうか。
965デフォルトの名無しさん:2012/02/07(火) 22:55:13.35
マルチするようなやつには無理
966959:2012/02/07(火) 23:15:18.62
>>961
具体的にはどういう処理が必要になるのでしょうか?
967デフォルトの名無しさん:2012/02/07(火) 23:30:41.76
>>965
なんだ見てる人いたのか
968デフォルトの名無しさん:2012/02/07(火) 23:39:03.94
>>966
CCommandBarCtrlImplを継承したクラスを作成して
DrawItemをオーバーライドする
969959:2012/02/08(水) 00:08:57.58
>>968
レスありがとうです
ちょっとチャレンジしてきます
970デフォルトの名無しさん:2012/02/08(水) 00:21:02.63
>>969
ごめんDrawItemじゃ無理だった
直接CCommandBarCtrlImplのOnParentCustomDrawを書き換えればいける
それか
NOTIFY_CODE_HANDLER(NM_CUSTOMDRAW, OnParentCustomDraw)
をコメントアウトするだけでも大丈夫かも
971959:2012/02/08(水) 00:58:41.67
>>970
レスありがとうです
CustomDrawに入り込む寸前でヘッダとにらめっこしてみた所、
m_bFlatMeusという怪しい変数を見つけまして
m_CmdBar.Create(....)の次の行に
m_CmdBar.m_bFlatMenus = false;
と追加した所、すんなりと目的を達成することができました。
良かったら>>970さんも試してみて下さい。
一緒に奮闘してくれてありがとうございました。
972デフォルトの名無しさん:2012/02/21(火) 20:11:34.81
前任者がWTLで作ったプログラムがあるんだが
見た目をかっこ良くしろと言われた。
なんか簡単にかっこ良くする方法ない?
973デフォルトの名無しさん:2012/02/21(火) 20:27:35.55
>>972
たまにこういうこといい出すやついるよな。ご愁傷さま。
がんばってオーナードローしてもやればやるほどダサくなるしwww
974デフォルトの名無しさん:2012/02/21(火) 20:33:41.51
>>973
マジで困ってる。
結構巨大なプログラムなんで全部オーナードローは厳しい。
最初はXPスタイルも適用されてなかったから適用して見せたんだが
「エクセルみたいにならない?」
975デフォルトの名無しさん:2012/02/21(火) 20:38:09.51
つまりリボンインターフェイスにしろって事?
976デフォルトの名無しさん:2012/02/21(火) 20:46:16.53
リボンだとしたら最新のWTLでプロジェクト作ってそこに既存のコードコピペでやれば簡単にできるよな。
面倒だが・・・
どうしてかっこ良くする必要が生じたのかわからないが、気分的に見た目がーっていうなら、作業する
ことで新たなバグを生み出す危険性を言って諦めてもらうのがいいと思うな
977デフォルトの名無しさん:2012/02/21(火) 20:54:30.33
でもリボンにするだけなら簡単だから
それですむならまだマシじゃね?
978デフォルトの名無しさん:2012/02/21(火) 21:12:32.75
>>974
エクセルがかっこ良いってのも凄い感性だw
979デフォルトの名無しさん:2012/02/21(火) 21:13:12.17
ああもうリボン対応してたのか。
とりあえずリボンにしてみるわ。
サンクス。
980デフォルトの名無しさん:2012/02/21(火) 21:13:16.08
WTLのリボンサポートってVista以降専用じゃなかったっけ
981デフォルトの名無しさん:2012/02/21(火) 21:14:42.02
まじかようちまだ90%以上がXPだよ
982デフォルトの名無しさん:2012/02/21(火) 21:28:15.59
なんでVista以降なんだろうな。
OfficeはXPでもリボンだよな?
983デフォルトの名無しさん:2012/02/21(火) 21:42:22.11
Vista以降に搭載されてるOSのリボンサポート使ってるから
984デフォルトの名無しさん:2012/02/21(火) 21:56:45.38
ってことはMFCのほうは独自でリボン持ってるのか。
985デフォルトの名無しさん:2012/02/21(火) 22:24:13.40
>>980踏んでたので新スレ

ATL/WTL Part7
http://toro.2ch.net/test/read.cgi/tech/1329830536/
986デフォルトの名無しさん:2012/02/21(火) 22:29:34.10
おつ
987デフォルトの名無しさん:2012/02/22(水) 00:46:40.50
>>984
MFCのリボンは、Office Fluent UI ライセンスだった気がする
988デフォルトの名無しさん:2012/02/22(水) 19:36:39.99
>>985

>>987
別ライセンスってことは
自社開発じゃなくてどっかから買ってるのかな。
989デフォルトの名無しさん:2012/02/23(木) 13:07:24.30
-
990デフォルトの名無しさん:2012/02/23(木) 14:12:06.43
=
991デフォルトの名無しさん:2012/02/23(木) 16:53:52.09
992デフォルトの名無しさん:2012/02/23(木) 17:36:41.28
993デフォルトの名無しさん:2012/02/23(木) 18:30:08.57
994デフォルトの名無しさん:2012/02/23(木) 19:01:16.48
ウィザードからタブベースを選択して作っただけのプロジェクトがあります。
多段タブにしたいと思い、(CTabView)m_viewのCreate時にTCS_MULTILINEを指定したのですが、何の変化もありませんでした。
ちなみに、指定したフラグです→ TCS_MULTILINE | TCS_RIGHTJUSTIFY | TCS_TABS | WS_CHILD | WS_CLIPSIBLINGS | WS_OVERLAPPED | WS_VISIBLE
次の行にm_view.ModifyStyle(0, TCS_MULTILINE);とかやっても変わりませんでした。
CTabViewを多段にする方法を教えてください。
995デフォルトの名無しさん:2012/02/23(木) 19:16:06.57
>>994
m_view.m_tabが実際のタブコントロールだからそっちにスタイル指定しなきゃだめ。
2段になるとビューサイズ位置の調整とかが必要になる?からCTabView派生のクラス作ってやらないと
うまく動かないと思う。
996デフォルトの名無しさん:2012/02/23(木) 19:37:26.35
>>995
ありがとうございます。
m_view.m_tabに指定したら多段になりました。
しかし、Viewの領域が多段に対応してないようなので、もう少し粘ってみます。
つまづいたらまたよろしくです。
997デフォルトの名無しさん:2012/02/23(木) 19:41:25.14
>>996
atlctrlx.h見てみたけど、m_tab.Create が呼ばれてるのは CreateTabControl() で、
これは OnCreate から pT->CreateTabControl() と呼ばれているから派生クラスで再定義できる

あとクライアントの位置調整は CalcTabHeight() で実装されていて
これも再定義できるみたいだから上手くやればいけるかも知れない
998デフォルトの名無しさん:2012/02/23(木) 19:50:03.00
もうちょっと見てみたけどどうやら CalcTabHeight は最初に一度しか呼ばれないらしく
動的な変化には対応してないっぽい

UpdateLayout() あたりを再定義すればやれるかも知れないけど
ある程度ロジックの追加が必要になりそう
999デフォルトの名無しさん:2012/02/23(木) 21:04:28.82
ソース見てたのですが頭がこんがらがってきてしまいました…
本当に凄いんですね…
1000デフォルトの名無しさん:2012/02/23(木) 21:24:24.82
       〈 ̄ヽ             |
 ,、____|  |____,、       |
〈  _________ ヽ,     |   /   ヽ
 | |             | |.      |、  .り    l
 ヽ'  〈^ー―――^ 〉   |/      dく\ しl   ノ
    ,、二二二二二_、         | \ン⌒⌒⌒i
   〈__  _  __〉        r-、/      l
      |  |  |  |.           (⌒ ,.イ      l
     / /  |  |    |\.      ~|~ ノ      l
 ___/ /  |  |___| ヽ.     | ̄ノ       l
 \__/   ヽ_____)     |  (       l
                       |  (______)
───────────────-┘ l ヾ    ,イ ̄
                         l  ヾ〜/)\
                    ,,〜ー、 l   ハ  `l\
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。