【发布时间】:2014-03-09 08:33:58
【问题描述】:
我尝试创建两个重叠的窗口,但只弹出一个。我计划使用 1 个窗口来处理按钮和另一个单独的窗口(不是子窗口)来显示每 1 秒更改一次的图像。是否可以?我尝试使用 1 个窗口来处理两者,但按钮丢失并且无法单击,因为程序正忙于运行显示。以及为第二个窗口的 HINSTANCE 设置什么参数?
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
HWND hWnd2;
hInst = hInstance; // Store instance handle in our global variable
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
100, 0,1000, 700, NULL, NULL, hInstance, NULL);
hWnd2= CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
100, 0,1000, 700, NULL, NULL, NULL, NULL);
CreateWindow(TEXT("button"), TEXT("\t Start Scanning\n"),
WS_VISIBLE | WS_CHILD | WS_BORDER,
810, 320, 150, 150,
hWnd, (HMENU) IDM_BEGIN, NULL, NULL);
CreateWindow(TEXT("button"), TEXT("\t STOP \n"),
WS_VISIBLE | WS_CHILD | WS_BORDER,
810, 480, 150, 150,
hWnd, (HMENU) IDM_PERMASTOP, NULL, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
【问题讨论】:
-
只使用一个窗口。使用 WM_TIMER 更改图像。在 WM_PAINT 中绘制图像。将 WS_CLIPCHILDREN 添加到父样式中。
-
@manuell,绝对精彩的答案。非常感谢你给我修复。解决了一切!