gpt4 book ai didi

visual-c++ - 如何在 MFC 应用程序中放置一个按钮?

转载 作者:行者123 更新时间:2023-12-02 15:38:44 24 4
gpt4 key购买 nike

我的 mfc 程序在客户区绘制了以下形状 - 现在我想在其旁边放置一个按钮以重新排列形状。

enter image description here

我知道我可以使用工具栏或菜单按钮,但有没有办法可以在框旁边放置一个按钮?像这样:

enter image description here

最佳答案

您需要做的就是创建一个CButton,并适本地放置它。

//.h
#define MYBUTTONID 10000 //or whatever doesn't conflict with your existing resources

public class CMyVew : public CView
{
CButton m_Button;

virtual void OnInitialUpdate();
void RepositionButton();
}

//.cpp
void CMyVew::OnInitialUpdate()
{
//this creates the actual button GUI window
m_Button.Create("Rearrange", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0,0,0,0), this, MYBUTTONID);
RepositionButton();
}

void CMyVew::RepositionButton()
{
//work out button position you need
m_Button.MoveWindow(x, y, width, height);
}

请注意,按钮只创建一次并负责绘制本身。您无需在 OnDraw() 或类似的东西中担心它。

您唯一需要担心的是按钮何时应该移动位置。这就是我分离出 RepositionButton() 函数的原因。例如,如果您正在使用 CScrollView 并且用户滚动,按钮窗口对此一无所知,因此您需要对滚动事件使用react并调用 RepositionButton()

通过添加 ON_BTN_CLICKED 消息映射,您可以像对任何其他按钮一样对按钮的消息使用react。

关于visual-c++ - 如何在 MFC 应用程序中放置一个按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com