我抄书上写的程序,可是在窗口后用2000任务管理器发现进程仍然存活,而且PostQuitMessage(0)也执行到了,谁来给我解疑啊
#include "stdafx.h"
#include "windows.h"TCHAR clsname[]="myclass";
HINSTANCE hinst;LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
hinst=hInstance;
WNDCLASS wc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=(WNDPROC)WndProc;
wc.lpszClassName=clsname;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=NULL;
wc.lpszMenuName=NULL;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
RegisterClass(&wc);
HWND hwnd=CreateWindow(clsname,"this is my window",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
MSG msg;
while(::GetMessage(&msg,hwnd,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
::PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
#include "stdafx.h"
#include "windows.h"TCHAR clsname[]="myclass";
HINSTANCE hinst;LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
hinst=hInstance;
WNDCLASS wc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=(WNDPROC)WndProc;
wc.lpszClassName=clsname;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=NULL;
wc.lpszMenuName=NULL;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
RegisterClass(&wc);
HWND hwnd=CreateWindow(clsname,"this is my window",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
MSG msg;
while(::GetMessage(&msg,hwnd,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
::PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
解决方案 »
- 为什么我的下拉菜单"拉"不下来?
- 怎样才能做到?
- VC中如何发起对URL连接的请求
- 怎样察看一个dll的api函数接口
- 请问使用WNetAddConnection2函数需要链接哪个.lib文件。
- 这段代码怎么在执行是报错?(小问题)
- 是否有的vxd的程序可以在nt,2000,下运行的很好!
- memfile 不能播放从网络传过来的数据, VC板块难道没人能帮助我?100分 呼唤高手和热心人 (内有源代码)
- 声讨CSDN:为什么我连续两天不能登录到CSDN各论坛下面???
- 请教一个问题:
- 我看 网络神偷的原理
- 不好意思,刚有个贴子“我不爽让我说”,本来说散分的,可管理员把分给清了,现在再来散,刚回答过的来UP一下,吃完中饭结贴
应为GetMessage(&msg,NULL,0,0)
先运行到case wm_destroy:....处,再运行到getmessage处,
看是否返回?.......
不知道是不是应该用getmessage(&msg, NULL, 0, 0)?
::ExitProcess(0);
break;
PostMessage( hWnd, WM_QUIT, 0, 0 );
break;...MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
真牛!
我看了半天,眼都看花了,也不懂。
以后要多请教了。