创建弹出窗口
C++ Create popup window
我想让一个弹出窗口出现,当我点击一个按钮,位于我的程序的主窗口。我到处寻找弹出窗口的例子,大多数答案只是向我展示了如何制作一个窗口,但我已经在我的应用程序中有一个主窗口。
基本上我的困难是知道在哪里把新的窗口类和代码为我的弹出窗口(因为我想弹出窗口有不同的属性比我的主要一个)。它应该也在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语句中创建。
相关文章:
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- 窗口 :创建仅具有对我的进程的权限的目录 (C++)
- DXGI_ERROR_INVALID_CALL为核心窗口创建交换链时
- 视觉C++窗口创建失败
- 从 WinAPI 窗口创建控制台窗口
- 窗口创建错误 - 可能是事件处理
- Qt:当主窗口被模式QDialog阻止时,如何聚焦从主窗口创建的无模式QDialog
- Visual Studio 2012应用程序窗口创建/调整大小与VS2008窗口创建不同?为什么?
- C++/SFML窗口创建失败
- 窗口创建问题
- 使用创建窗口创建 MDI 子窗口
- MDI 子窗口创建失败
- Win32窗口创建失败
- 挂钩窗口创建;挂钩未被触发
- 如何使用'C'或'C++'为窗口创建独立的程序或应用程序
- 调用glfwWindowHint()后,GLFW窗口创建失败
- c++窗口创建/ SDL
- Qt从我的主窗口创建新窗口
- 窗口创建失败-LoadFrame(IDR_MAINFRAME)使C++失败
- Visual Studio和SDL2窗口创建失败