使用C在win32运行时移动按钮的x位置

使用C在win32运行时移动按钮的x位置,c,winapi,button,move,C,Winapi,Button,Move,我还没有在我的win32书籍或使用google中找到很多关于这方面的信息。我想移动我在对话框窗口中创建的按钮的x位置。简而言之,我有6个按钮,我想根据是否需要显示4、5或6个按钮来重新定位它们 目标是在运行时向按钮发送消息并将其移动到x位置。我可以找到在运行时更新按钮文本字段和颜色的简单方法,但不能更新位置 我的按钮是 #define IDC_PB_BUTTON_A 并在对话框窗口中创建为 PUSHBUTTON "A", IDC_PB_BUTTON_A, 4, 4, 30, 30, BS

我还没有在我的win32书籍或使用google中找到很多关于这方面的信息。我想移动我在对话框窗口中创建的按钮的x位置。简而言之,我有6个按钮,我想根据是否需要显示4、5或6个按钮来重新定位它们

目标是在运行时向按钮发送消息并将其移动到x位置。我可以找到在运行时更新按钮文本字段和颜色的简单方法,但不能更新位置

我的按钮是

#define IDC_PB_BUTTON_A
并在对话框窗口中创建为

PUSHBUTTON    "A", IDC_PB_BUTTON_A, 4, 4, 30, 30, BS_MULTILINE
我想在运行时获取前4个值,并将其移动10个单位,使其。。。其中x位置值已从4更改为14

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

我希望我可以用某种SendDlgItemMessage()来实现这一点,但是找不到关于这个主题的任何东西。有什么建议吗?

移动窗口的API调用为1。确保通过
SWP\u NOSIZE
,使控件保持其初始大小



1您也可以使用,但这要求您输入新的窗口大小和位置。要保留窗口大小,必须首先调用。

移动窗口的API调用为1。确保通过
SWP\u NOSIZE
,使控件保持其初始大小



1您也可以使用,但这要求您输入新的窗口大小和位置。要保留窗口大小,您必须先调用。

SetWindowPos是否只移动实际对话框?我只想在对话框中移动某个按钮,而不是整个窗口。@Yawn:我发布了一个到的链接,希望我不必重复它。我猜我错了,所以这里又是:“更改子窗口的[…]位置[…]”是的,我读了文档,我只是看不到它抓住按钮的位置。它似乎有两个HWND值,而不是一个按钮。@Yawn:每个窗口都是通过
HWND
引用的。Windows API中没有表示按钮、编辑或listview控件的专用类型。这是一个基本概念,在任何Windows API编程书中都有解释。@yawn call
GetDlgItem
获取对话框子窗口的窗口句柄SetWindowPos是否只移动了对话框?我只想在对话框中移动某个按钮,而不是整个窗口。@Yawn:我发布了一个到的链接,希望我不必重复它。我猜我错了,所以这里又是:“更改子窗口的[…]位置[…]”是的,我读了文档,我只是看不到它抓住按钮的位置。它似乎有两个HWND值,而不是一个按钮。@Yawn:每个窗口都是通过
HWND
引用的。Windows API中没有表示按钮、编辑或listview控件的专用类型。这是一个基本概念,在任何Windows API编程书中都有解释。@yawn call
GetDlgItem
要获取对话框子窗口之一的窗口句柄,请停止在问题中编辑答案。如果它与当前的答案完全不同,请自己把它作为答案张贴。请停止将答案编辑成你的问题。如果它与当前的答案有足够的不同,请将其作为自己的答案发布。