找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4579|回复: 0

Win32 中的GetMessage的问题?

[复制链接]
发表于 2009-12-3 19:25:32 | 显示全部楼层 |阅读模式
#include <windows.h>
#include <string>
LRESULT CALLBACK WindowProc(
       HWND hwnd,      // handle to window
       UINT uMsg,      // message identifier
       WPARAM wParam,  // first message parameter
       LPARAM lParam   // second message parameter
       );

LRESULT CALLBACK WndProc(
       HWND hwnd,      // handle to window
       UINT uMsg,      // message identifier
       WPARAM wParam,  // first message parameter
       LPARAM lParam   // second message parameter
       );

int WINAPI WinMain(
       HINSTANCE hInstance,      // handle to current instance
       HINSTANCE hPrevInstance,  // handle to previous instance
       LPSTR lpCmdLine,          // command line
       int nCmdShow              // show state
       )
{


WNDCLASS wndClass;
wndClass.cbClsExtra=0;
wndClass.cbWndExtra=0;
wndClass.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH);
wndClass.hCursor=\LoadCursor(hInstance,IDC_ARROW);
wndClass.hIcon=\LoadIcon(hInstance,IDI_APPLICATION);
wndClass.hInstance=hInstance;
wndClass.lpszClassName="sqzxcv";
wndClass.lpfnWndProc=WndProc;
wndClass.lpszMenuName=NULL;
wndClass.style=CS_VREDRAW|CS_HREDRAW;

::RegisterClass(&wndClass);


HWND hwnd=CreateWindow(
  TEXT("sqzxcv"),   // window class name
  TEXT("ľÌÇÌì¿Õ"),  // window caption
  WS_OVERLAPPEDWINDOW,      // window style
  CW_USEDEFAULT,            // initial x position
  CW_USEDEFAULT,            // initial y position
  CW_USEDEFAULT,            // initial x size
  CW_USEDEFAULT,            // initial y size
  NULL,                     // parent window handle
  NULL,                     // window menu handle
  hInstance,                // program instance handle
  NULL);                    // creation parameters


if (hwnd==NULL)
{
  return 0;
}
::ShowWindow(hwnd,SW_NORMAL);
::UpdateWindow(hwnd);

MSG msg;
while (::GetMessage(&msg,hwnd,0,0))//*********************@1
{/*::GetMessage(&msg,NULL,0,0)*///**********************@2
  ::TranslateMessage(&msg);
  \DispatchMessage(&msg);
}

return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
       WPARAM wParam, LPARAM lParam)
{
//  HDC          hdc;
//  PAINTSTRUCT  ps;

switch(message)
{
case WM_DESTROY:
  PostQuitMessage(0);
  return 0;
default:
  return DefWindowProc(hWnd, message, wParam, lParam);
}
} // WndProc

为什么当用@1时,如果程序退出,应用程序的进程并不会结束,而且这个应用程序的进程狅占CPU,是为什么?
要是用@2 就不会出现这个问题。。。。

[ 本帖最后由 sqzxcv 于 2009-12-3 19:27 编辑 ]
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-22 17:28 , Processed in 0.014378 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表