リソースとCreate関数でのサイズの互換性について – プログラミング – Home

リソースとCreate関数でのサイズの...
 
通知
すべてクリア

[解決済] リソースとCreate関数でのサイズの互換性について


ヘンダソン
 ヘンダソン
(@ヘンダソン)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

Win2000、VC++6.0(MFC)の環境で作っているのですが、コンボボックスを配列にして複
数作成し処理しようと考え、メンバ変数でCComboBoxの配列(CComboBox m_ctlCombo
[COUNT];※COUNTは作成数)を作成し、OnInit時にfor文で回しながらCreate(CComboBox
[i].Create(……);)という手順をとりました。

が、リソースエディタでコンボボックスを配置したい位置に仮に作成し、リソースファ
イルの位置情報の値を取得し、その値をもとにCreate関数の引数にしたところ、全く想
定しない位置に表示されてしまいました。

試しに様々なコントロールをリソースエディタで配置し、実行時にサイズを取得し、リ
ソースファイルに書かれてあるサイズ値と比較してみたのですが、関連性がよくわかり
ませんでした。

リソースファイルとCreate関数のサイズの値の相互変換の計算式等々ありましたら教え
てください。

※もしリソースエディタ上でコントロールの配列化を実現する方法がありましたら、教
えてください(VBだったら楽に作れますが……)


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

リソースエディタでの単位はダイアログ単位というものです。
ピクセル数への変換は、CDialog::MapDialogRect()でできます。

リソースエディタに貼り付けたコントロールを配列に
マップするのであれば、普通クラスウィザードが書いてくれるDDXのコードを
自分で手入力すればよいでしょう。

DDX_Control(pDX, IDC_COMBO1, m_combo[0]);
DDX_Control(pDX, IDC_COMBO2, m_combo[1]);
...


返信引用
ヘンダソン
 ヘンダソン
(@ヘンダソン)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

dailygoods様、ありがとうございました!

あの後色々試して、X軸方向を1.75倍、Y軸方向を1.5倍ほどすると、イメージ通りの位
置になったのですが、果たしてその値に正当性があるかどうか全く判断できませんでし
たので、使うことができませんでした。
ちゃんと関数があったのですね。調査不足でした。

また、リソースエディタに貼り付けたコントロールの配列化も教えていただき、ありが
とうございました。うーむ、こういうことも思いつかないとは……どうやら頭が固くな
っている証拠ですかね。
本当にありがとうございました。
今後ともよろしくお願いいたします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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