gpt4 book ai didi

c - 有没有办法从组框内的按钮获取消息?

转载 作者:行者123 更新时间:2023-11-30 16:57:26 25 4
gpt4 key购买 nike

所以我有一个组框样式的按钮。我可以通过创建一个以组框为父级的按钮来在其中放置一个按钮。但是,如果我这样做,组框将获取按钮单击消息而不是窗口。有什么方法可以拦截或转发这些消息吗?

PasteBin 上的示例,其中不是将按钮放在组框中,而是将其悬停在顶部,但这意味着我不能简单地使组框及其内容在一个命令中不可见(并且它是作弊的,因此在某些时候可能会出错)。那么,有没有办法在按钮实际位于组框中的情况下做到这一点?

创建控件的示例代码:

HWND hSoFGrp = CreateWindowEx(WS_EX_LEFT, "BUTTON", _T("Group Text"), WS_CHILD | WS_TABSTOP | WS_VISIBLE |
BS_GROUPBOX | BS_TEXT | BS_LEFT | BS_TOP,
0, 250, 150, 100, hwnd, (HMENU) 40,
GetModuleHandle(NULL), NULL);

HWND hSoFBtn = CreateWindowEx(WS_EX_STATICEDGE, "BUTTON", _T("Button"), WS_CHILD | WS_TABSTOP | WS_VISIBLE |
BS_PUSHBUTTON | BS_CENTER | BS_TEXT | BS_VCENTER | BS_MULTILINE,
100, 15, 48, 30, hSoFGrp, (HMENU) 41,
GetModuleHandle(NULL), NULL);

处理消息的示例代码:

switch (msg)
{
case WM_COMMAND:
if (LOWORD(wParam) == 40)
{
//This would be messages from the groupbox
}
else if (LOWORD(wParam) == 41)
{
//This would be messages from the button if the groupbox wasn't intercepting them!
}
break;
}

那么,这可能吗?

最佳答案

组框通常不用作其中可见包含的控件的父窗口。 HWND 的层次结构不一定与控件的可见组织相匹配。相反,您应该使组框成为其分组控件的同级。

请注意,组框应按 z 顺序放置在其分组控件之前(上方);这样,从组框标签激活助记符会将焦点移动到组中的第一个控件。即使组框控件将位于其分组控件之上,a group box explicitly allows other controls to draw themselves over it .

关于c - 有没有办法从组框内的按钮获取消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39538827/

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