创建弹出窗口

C++ Create popup window

本文关键字:窗口 创建      更新时间:2023-10-16

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

基本上我的困难是知道在哪里把新的窗口类和代码为我的弹出窗口(因为我想弹出窗口有不同的属性比我的主要一个)。它应该也在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()中与主窗口一起注册窗口。在windowproc的情况下调用createwindowwex()语句。

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

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

注:如果你是俄罗斯人,那么我强烈推荐《Win32 API》这本书。Yuri Shchupak(俄文)

新窗口应该在处理按钮点击的windowproc的case语句中创建。