ATL/WTL Part7
■ このスレッドは過去ログ倉庫に格納されています
関連サイトなど
■The So-Software Studio
ttp://home.att.ne.jp/banana/akatsuki/
■WTL研究所
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
■WTL support list
ttp://tech.groups.yahoo.com/group/wtl/
■The Code Project - ATL, WTL
ttp://www.codeproject.com/KB/atl/
ttp://www.codeproject.com/KB/wtl/
■viksoe
ttp://www.viksoe.dk/code/
■MSDN
ttp://msdn2.microsoft.com/ja-jp/library/t9adwcde.aspx
ttp://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/ATLwindowing/
ttp://www.microsoft.com/japan/msdn/library/ja/vccore/html/_atl_ATL_Window_Classes.asp
■Virtual Truth Lab.
ttp://lamoo.s53.xrea.com/develop/
■日曜プログラマの仕事べや
ttp://hp.vector.co.jp/authors/VA022575/c/ 前スレ>>996
>>997-998の方法でとりあえず多段タブをやってみた
ドラッグドロップでタブを並べ替えるときのマーカーの位置がおかしいけど
なんとか行けそうな感じはする
MultilineTabView
http://www1.axfc.net/uploader/Sc/so/322032 ドラッグ中の描画の問題に対処してみた
WinXPとWin7上で動作を一応確認
Multiline Tab View
http://www1.axfc.net/uploader/Sc/so/322097 うぉおおぉ!!!
素晴らしすぎて感動しました…
タブのドラッグ描画とかもちゃんと対応してくれてるんですね
大切に使わせて頂きたいと思います。
本当にありがとうございます。 ごめん、>>5で使ってるWTLはちょっと古かった
今更ながら確認したら最新版のWTL(8.1.11324)ではどうやらフォント関連に変更があったようなので
標準の CTabView の動作に合わせるよう整理しました
最新版のWTLでビルドすれば多くの環境でフォントが綺麗なものになるはず
http://www1.axfc.net/uploader/Sc/so/322627 リボンが追加されただけじゃなかったのか
油断してたわ DION規制長かった…
規制の理由がmonazilla UA の 同一IPアドレスからの要求爆撃とかどんだけ CRect には operator LPRECT が定義されているのに
CPoint, CSize には operator LPPOINT, operator LPSIZE が定義されていない。
何か理由があるんだろうか? 未完成なOSだからまだ実装されてないんじゃないかな 完成と同時に崩壊が始まるのでわざと未完のままにする為だよ CSplitterWindowの左右のビュー間をTABキーでフォーカス移動したいんだけど
自分でキー入力捕まえてフォーカス移動しないとだめ? ごめん違う人だけど質問させて
CDialog系列ではなくCWindow系列のウィンドウをモーダル表示したいのですが
可能ですか?
Create 時に dwStyle = WS_POPUPWINDOW | WS_VISIBLE を設定しても無反応でした
やりかたをご存じでしたら教えて下さい。
最悪の場合、ポップアップ表示できたらモードレスでも何でも構わないです
CDialogだとpixel指定やら初期化時やらの勝手が違ってしまうので…
>>22
Create時にウィンドウの位置と大きさ指定してるか? ごめんなさい根本的にCWindowでクラス名を打ち間違えてました
そりゃ表示されるわけないですねw
WS_POPUP / WS_POPUPWINDOW のモーダル化はうまくいっていないので
現在試行錯誤してますが普通にモーダレスになってしまってて…難航中です。 >>24
表示するタイミングでオーナーウィンドウ.EnableWindow(FALSE) で無効化してやる
終わったら EnableWindow(TRUE) で元に戻す
クリック時に自前でFlushWindowとかやる必要があったかも知れないけどよく覚えてない EnableWindow&クリック時にポップアップウィンドウをFlushWindow
で実装するしかない…みたいですね
どうもありがとう。
現在VC++2010Expressでアプリケーションの開発を行なっています。
windows7で作成したWTLアプリケーションをXPで動かそうとすると
ボタンが表示されなかったり、Lunaスタイルを指定しているのに、Lunaスタイルではなく表示されていたりと、
いろいろおかしな現象が発生します。
これってATLを静的にリンクしたことが原因でしょうか?
その場合、VC++Expressだと解決策はないのでしょうか? ExpressでWTL動かせるようになったのか・・ ATLをリンクしない設定にしていても普通にアプリケーションが動いてしまう不思議 WTLとATLの区別がついていない予感がするに1票 >>29
ググったらパッチ配ってるとこありました。
>>30-31
ご指摘の通り、ATLリンクしないにしてもコンパイル出来ましたが、
以前として現象が続いてます。別なとこに原因があるのかもしれません。
古いPlatform SDKについてるATL3を使って無理やりWTL動かしてるんでしょ
もう動かんだろさすがに
WDKあたりにATL7が入ってるからそっち使いなさい >>34
AtlInitCommonControlsはすでに使っています。
順番が悪いのかと思って色々変えているのですが、一向に変わる気配がありません。
>>36
使っているSDKは7.0です。
WDKはもうインストール済みで、パスも通っています。
ビルド時の警告で以下の警告が出力されますがこれが原因でしょうか
CIL library( CIL module) : warning LNK4078: 複数の 'ATL' セクションが見つかりました。これらは異なる属性 (50301040) を持っています。
原因わかりました。
API関数の一部にXPと7とで挙動が変わるものがあるらしく、それが原因で
表示のされかたに差異がでたようです。
結果としてすれ違いとなってしまいました。 >>38
自己完結ぜずに挙動の違うAPI晒してくれよ Orz >>39
プッシュライクなチェックボタンに対して、GetIdealSizeで
ウィンドウテキスト分のサイズの大きさを取得しようとすると、
XPだと横幅0、Windows7だと一定の横幅(ウィンドウテキストに最適化されたサイズではない)が取得されるようです。
これにはGetTextExtentPoint32をつかって自前で測って対処しました。
あと、エディットコントロールの背景色を変える際に、誤ってNULLを渡してしまうと、
XPだと黒、Windows7だと白になります。
あまり詳しく調べていないので他に条件があるかもしれません。
結局のところAPIの使い方がなっていなかったと思います。
>>40が該当するかは知らないが、
BCM_GETIDEALSIZEにXPとVista以降で動作が違うと書かれてる >>41
Windows SDKのドキュメントって未だに大部分が英語ですのぅ。。 日本語化してくれるのは歓迎だけど、同じページで英語版よりも情報量が少ないのは勘弁。結局、英語の使うことになる >>43
昔のMSDNは重要な注意事項が日本語翻訳版になかったりしましたね。
でも今のWeb版のMSDNドキュメントは英語と日本語の両方がでますよ。
マウス当てるだけで英語がポップアップするのはウザイけど。 このハンドルは、、、、 いずれかの関数の戻り値です。 >>46
MSDNなんて完璧な翻訳だったとしても意味不明だがw 普通に英語で見るよ。
日本語だとかえってわからんw 日本語そんなに間違ってるの?
大体は日本語版見てるわ >>44を筆頭にまともに使える日本語ページを探す方が難しくないか? >>53
今のは随分とマシになったよ。
VC6の頃は日本語の文章が英語の半分くらいの量しかないことなんて良くあった。
減っている部分に重要な事が書いてあるから日本語のだけ見るとどつぼにはまる。 >>55
機械語翻訳てw
逆アセンブラすか。
>>56
IDXGISurface::マップ
HRESULT マップ(
DXGI_MAPPED_RECT *pLockedRect,
UINT MapFlags
);
・・・なごんだ。
追加定義なしでコンパイルできたらMS信者になるw WTLはMSDN読まなきゃ何も出来ないんぢゃないの? WTLはMSDNよりもむしろソースコード読まないと何もできない そんなときはincludeフォルダに入ってるヘッダをぶち込んだだけのプロジェクト作って
クラスビューをまったりと眺めてると新境地が見えてくる WTL Documentation
ttp://www.viksoe.dk/code/wtldoc.htm
ちょっと古いか So-Soのソースを全部コピペ&ビルドすればほぼ理解できる
あとは応用
ATL/WTLじゃなくて全部ATL1本にしてたらもっと流行ってたんだろうか >>69
So-Soさんとこはコピペしないでも、プロジェクトから実行ファイルまで
全部おいてくれてるよ。
全部手で打つなら、別の意味があると思うけど。 普通のウィンドウでIsDialogMessage呼んで
タブキーでのフォーカス移動をしようとしてるんだけど
ボタンやエディットボックスにはフォーカスが移るのに
自作コントロールには移らない。
自作コントロールにフォーカスが移る場面になると
他のコントロールからフォーカスが外れるけど
自作コントロールには何のメッセージも飛んでこない。
WS_GROUPとWS_TABSTOPはつけてる。
ボタンなんかは特殊な処理してるの? >>76
思い当たるのは WM_GETDLGCODE メッセージに対して DLGC_WANT* を返してやることくらいかな
ただ何のメッセージも飛んでこない、ってとこから察するに
ウィンドウの親子関係とかIsDialogMessageの使い方とかその辺りから何かを間違えてる可能性が >>77
サンクス
親子関係に問題がありました。
お騒がせ致しました。 CCommandBarCtrlの上の余白って無くせない?
メインウィンドウをWS_POPUPにして最大化した時に
スクリーン上部でマウスクリックできるようにしたい。 ヴぃくそえさんとこのは痒いところに手が届かないというか届くというか Windows7まではATLでWindows8からはWinRTになるのかな
nenadstefanovicさんのモチベは大丈夫かな テキストボックスの推奨高さみたいなのを取得する方法あったら教えて下さ default values for their height properties.
Textbox = 20
Label = 23
Button = 23
Checkbox = 24
Combobox = 21 (is fixed)
DomainUpDown = 20
NumericUpDown = 20 リソース経由ならMapDialogRectとかは? 使いやすければ多少OSの標準?と違ってもいいような
Vista以降ボタンのサイズがやや肥大化してるみたいだし
厳密に大きさが規定されているわけでは無さそう
こだわるならプロジェクト無いで統一する程度でいいのでは Windows3.1のころのボタンは結構大きかったよね。
画面サイズの変化に取り残されて小さくなった。 質問です
Visual Studioでフォルダを選択する時には
ファイルダイアログで「フォルダーを開く」ことができますが
この機能が使いたいです。
これをWTLで実現することはできますか? あー、フォルダダイアログじゃなくて、フォルダを選択できるファイルダイアログか
■ このスレッドは過去ログ倉庫に格納されています