gpt4 book ai didi

C++ 创建弹窗

转载 作者:行者123 更新时间:2023-11-30 02:44:25 27 4
gpt4 key购买 nike

我想在我点击程序主窗口上的按钮时显示一个弹出窗口。我到处寻找弹出窗口示例,大多数答案只是向我展示了如何制作一个窗口,但是我的应用程序中已经有一个主窗口。

基本上我遇到的困难是知道在哪里放置新窗口类和弹出窗口的代码(因为我希望弹出窗口具有与主窗口不同的属性)。它也应该在 WinMain 函数中还是应该在 CALLBACK WndProcedure 部分中的一种情况下?

我的一些窗口代码是:

WNDCLASSEX wc;
HWND hwnd;
MSG Msg;

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"The title of my window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);

if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

我只是不确定把它放在哪里......它应该放在按下按钮时激活的代码中,还是应该与其他窗口的信息一起留在 WinMain 函数中?

我希望你能理解我的困境,我对编程有点陌生。

最佳答案

在 main() 中与主窗口一起注册窗口。并且在 WndProc 的 case 语句中调用 CreateWindowEx()。

但我不知道如何制作弹出动画。我可以想象代码应该放在 WM_CREATE 的某个地方,但我不知道。

如果您的意思只是另一个窗口,例如设置窗口,您应该使用对话框。

附言如果你是俄罗斯人,那么我强烈推荐 Yuri Shchupak 的俄语版《Win32 API. Effective Application Development》一书

关于C++ 创建弹窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329905/

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