何度もすいません。補足です。
上記の方法ならば、一回行うだけで
ダイアログのタイトル・全てのコントロールに対して
WS_EX_LAYOUTRTLが適用されました。
リソースエディタで指定した場合と同じ状況になります。
アドバイスの前提が崩れちゃいました。
すみません。
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入れるなり、ブレイクポイントを入れるなり、ご自身で確認してみてください。
多分、やってみないと理解が進まないと思います。
(各オブジェクトのハンドルを使って生成済みか否か判断します)
リソースDLLにはしたかったのですが・・・
時間が足りない事と、元となる設計を大きく崩したくないと言うこともあり
アドバイスして頂いて申し訳無いのですが、今の形で行こうと思います。
今後、新規で作成する場合は参考にさせて頂きます。
>各オブジェクトのハンドルを使って生成済みか否か判断します
試してみました。
OnCreate()の段階でハンドルが取れる=生成済みなのですね。
そうすると、ModifyStyleEx(0, WS_EX_LAYOUTRTL)が
OnCreate()では有効で、OnInitDialog()では有効ではない
ということの違いが良くわかりません。
どちらでもハンドルが取れる状態なので、有効になって良いと思うのですが・・・