C 为什么恢复的、最小化的、最大化的通知都会在不应该发送时发送';不会吧?

C 为什么恢复的、最小化的、最大化的通知都会在不应该发送时发送';不会吧?,c,winapi,resize,messaging,C,Winapi,Resize,Messaging,我对C相当陌生(只有3个月),而且我已经开始使用Windows编程。玩过之后,我试着回复WM_大小的消息。在一个简单的程序中,我的WndProc()如下所示: LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_SIZE: switch(wParam) { case SIZE_MINIMIZED: Mes

我对C相当陌生(只有3个月),而且我已经开始使用Windows编程。玩过之后,我试着回复WM_大小的消息。在一个简单的程序中,我的WndProc()如下所示:

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch(msg) {
  case WM_SIZE:
    switch(wParam) {
      case SIZE_MINIMIZED:
           MessageBox(NULL, "You minimized the window!", "Minimized", MB_ICONEXCLAMATION | MB_OK);
      case SIZE_MAXIMIZED:
           MessageBox(NULL, "You maximized the window!", "Maximized", MB_ICONEXCLAMATION | MB_OK);
      case SIZE_RESTORED:
           MessageBox(NULL, "You restored the window!", "Restored", MB_ICONEXCLAMATION | MB_OK);
    }
}
我希望在正确的时间弹出正确的消息,所以当我最小化窗口时,“最小化”消息框应该会弹出

相反,当我最小化窗口时,所有三个消息框都会弹出,首先是最小化,然后是最大化,然后是恢复。恢复消息框会弹出给所有人,而不是说它应该做什么。
如果有人能解释这一点或我做错了什么,请解释。

在每个案例之后,您需要
中断

  case SIZE_MINIMIZED:
       MessageBox(NULL, "You minimized the window!", "Minimized", MB_ICONEXCLAMATION | MB_OK);
       break;
  case SIZE_MAXIMIZED:
       MessageBox(NULL, "You maximized the window!", "Maximized", MB_ICONEXCLAMATION | MB_OK);
       break;
  case SIZE_RESTORED:
       MessageBox(NULL, "You restored the window!", "Restored", MB_ICONEXCLAMATION | MB_OK);
       break;

Break在循环和switch语句中用于跳转到代码块的末尾。

Lol,noob程序员的错误。谢谢你指出这一点。