2017-05-19 2 views
-2

私のwin32の本やgoogleでこれについて多く知ることができませんでした。私は、ダイアログウィンドウで作成したプッシュボタンのx位置を移動したい。簡単に言えば、6つのボタンがあり、4,5,6のボタンを表示する必要がある場合は、そのボタンの位置を変えたいと思っています。実行時にボタンのx位置をCを使ってwin32に移動

目的は、ランタイム中にボタンにメッセージを送信し、x位置に移動することです。私は実行時にボタンのテキストフィールドと色を更新する簡単な方法を見つけることができますが、位置はありません。私のボタンがある

...

#define IDC_PB_BUTTON_A 

とダイアログウィンドウで、このように作成...

PUSHBUTTON "A", IDC_PB_BUTTON_A, 4, 4, 30, 30, BS_MULTILINE 
私は、実行時にその最初の4値を取得し、それを上に移動したいと思います

私はこれのwiを行うことができます願っていたx位置の値が4から14

PUSHBUTTON "A", IDC_PB_BUTTON_A, 14, 4, 30, 30, BS_MULTILINE 

に変更されたそれを作る10台...いくつかの種類のSendDlgItemMessage()が、件名に何も見つかりません。助言がありますか?

+1

質問に対する回答の編集をやめてください。それが現在の回答と十分に異なる場合は、自分で回答として投稿してください。 – ChrisF

答えて

2

ウィンドウを移動するAPI呼び出しは、SetWindowPos です。コントロールが初期サイズを保持するように、SWP_NOSIZEを渡すことを確認します。


あなたにもMoveWindowを使用することができ、それはあなたが新しいウィンドウサイズだけでなく、位置に渡す必要があります。ウィンドウサイズを保持するには、最初にGetWindowRectと呼ぶ必要があります。

+0

SetWindowPosは実際のダイアログを移動するだけですか?私は、ウィンドウ全体ではなく、ダイアログボックス内の特定のプッシュボタンだけを移動しようとしています。 – Yawn

+1

@Yawn:私は[documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545.aspx)へのリンクを投稿しました。もう一度。私は間違っていたと思うので、ここでもそれが繰り返されています:* "子供の[...]窓の[...]位置を変更します。* * – IInspectable

+0

はい、私はその文書を読んでいます。そのボタンをつかむ場所を参照してください。ボタンではなく2つのHWND値を取るようです。 – Yawn

関連する問題