我可以在 WINAPI 中创建没有父级的按钮吗?
我试着做:
CreateWindowEx(0, "Button", "BTN", WS_POPUP | BS_PUSHBUTTON, 0, 0, 15, 15, nullptr, nullptr, nullptr, nullptr);
然后稍后将父级设置为指定的窗口,并使用 ShowWindow 显示按钮。这确实创造了一个漂亮的按钮。
但是,该按钮没有 ID,并且无法在 WM_COMMAND 中识别,因为 ID 为 0。如果两个按钮没有父级,则无法区分它们。现在,如果我通过 HMENU 参数给它一个 ID:
CreateWindowEx(0, "Button", "BTN", WS_POPUP | BS_PUSHBUTTON, 0, 0, 15, 15, nullptr, 15, nullptr, nullptr);
GetLastError() 打印“无效的菜单句柄”并且不会创建按钮。
如果我没有给它父母和 WS_CHILD,它会说不能创建一个可以理解的顶级子窗口。
所以我所做的就是将 Parent 设置为 GetDesktopWindow() 并给按钮一个 ID。这有效,但按钮不是没有父母的..
那么有没有办法给一个按钮一个ID(以便在WM_COMMAND中识别它),同时让它的父级为NULL,以便我以后可以设置父级?Windows 窗体是如何做到的?在您执行 Form.add(ButtonName); 之前,按钮可以是无父的。
在WINAPI中能达到同样的效果吗?