【问题标题】:Creating two overlapped win32 windows simulatenously c++模拟创建两个重叠的win32窗口c ++
【发布时间】: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,绝对精彩的答案。非常感谢你给我修复。解决了一切!

标签: c++ winapi win32gui


【解决方案1】:

您正在创建两个重叠的窗口,但您只是第一次调用ShowWindow()。只需在另一个上拨打ShowWindow()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多