動的にウィンドウスタイルを変更したい – 固定ページ 2 – プログラミング – Home

動的にウィンドウスタイルを変更したい
 
通知
すべてクリア

動的にウィンドウスタイルを変更したい

固定ページ 2 / 2

無空
 無空
(@無空)
ゲスト
結合: 9年前
投稿: 8
Topic starter  

何度もすいません。補足です。

上記の方法ならば、一回行うだけで
ダイアログのタイトル・全てのコントロールに対して
WS_EX_LAYOUTRTLが適用されました。

リソースエディタで指定した場合と同じ状況になります。


返信引用
AR2
 AR2
(@ar2)
Estimable Member
結合: 4年前
投稿: 110
 

アドバイスの前提が崩れちゃいました。
すみません。

MFCの多言語対応であれば、以下の解説URLが定番っぽいように思います。
起動後に切り替える仕組みなど、以前私も参考にしましたし。

http://hp.vector.co.jp/authors/VA000092/win32/multi-lang-mfc.html
http://www.vcppclub.com/samples/gen/p_loctest/loctest.html

文字高さや、文字幅も言語によって異なるので、仲澤@失業者さんの仰ってるような「ア
ラビア語専用リソースDLL」みたいな各言語専用のDLLを作った方が良い場合が多いです。
もっともリソースを丸ごと入れ替えるので、一部だけ入れ替えるというのは最初の設計段
階から考えてないとしんどいですがね。

>OnCreate() → ダイアログ生成、属性適用可能? → OnInitDialog()

TRACE入れるなり、ブレイクポイントを入れるなり、ご自身で確認してみてください。
多分、やってみないと理解が進まないと思います。
(各オブジェクトのハンドルを使って生成済みか否か判断します)


返信引用
無空
 無空
(@無空)
ゲスト
結合: 9年前
投稿: 8
Topic starter  

リソースDLLにはしたかったのですが・・・
時間が足りない事と、元となる設計を大きく崩したくないと言うこともあり
アドバイスして頂いて申し訳無いのですが、今の形で行こうと思います。

今後、新規で作成する場合は参考にさせて頂きます。

>各オブジェクトのハンドルを使って生成済みか否か判断します
試してみました。
OnCreate()の段階でハンドルが取れる=生成済みなのですね。

そうすると、ModifyStyleEx(0, WS_EX_LAYOUTRTL)が
OnCreate()では有効で、OnInitDialog()では有効ではない
ということの違いが良くわかりません。

どちらでもハンドルが取れる状態なので、有効になって良いと思うのですが・・・


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

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