关于DestroyWindow()和PostQuitMessage()的少许疑问

 #include <windows.h>
#include <stdio.h>
LRESULT CALLBACK proc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
 HDC hdc;
 PAINTSTRUCT ps;
 switch(uMsg)
 {

 case WM_CHAR:
  char sz[20];
        sprintf(sz,"char is %d!",wParam);
  MessageBox(hwnd,sz,NULL,MB_OK);
  break;
 case WM_LBUTTONDOWN:
        MessageBox(hwnd,"You hava clicked the left of mouse!",NULL,MB_OK|MB_ICONEXCLAMATION);
  hdc = ::GetDC(hwnd);
  ::TextOut(hdc,0,50,"sdfsdf",sizeof("sdfsdf"));
  ::ReleaseDC(hwnd,hdc);
  break;
 case WM_PAINT:
  hdc = ::BeginPaint(hwnd,&ps);
  ::TextOut(hdc,0,0,"sdfsdfsdf",sizeof("sdfsdfsdf"));
  ::EndPaint(hwnd,&ps);
  break;
    case WM_CLOSE:
  
  if(IDYES == MessageBox(hwnd,"你确定要退出吗?","退出",MB_YESNOCANCEL|MB_ICONEXCLAMATION))
  {
   DestroyWindow(hwnd);
  }
  break;
 case WM_DESTROY:
  ::PostQuitMessage(0);
  break;
 
 default:
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
 }
 return 0;
}


int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
{
 WNDCLASS wndcls;
 wndcls.cbClsExtra = 0;
 wndcls.cbWndExtra = 0;
 wndcls.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
 wndcls.hCursor = ::LoadCursor(hInstance,IDC_ARROW);
 wndcls.hIcon = ::LoadIcon(hInstance,IDI_APPLICATION);
 wndcls.hInstance = hInstance;
 wndcls.lpfnWndProc = proc;
 wndcls.lpszClassName = "zhu";
 wndcls.lpszMenuName = NULL;
 wndcls.style = CS_HREDRAW|CS_VREDRAW;
   
 ::RegisterClass(&wndcls);

 HWND hwnd;
 //RECT rect;
 //::GetClientRect(hwnd,&rect);
 hwnd = ::CreateWindow("zhu","window",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
 ::ShowWindow(hwnd,SW_SHOWNORMAL);
 ::UpdateWindow(hwnd);

 MSG msg;
 while(GetMessage(&msg,NULL,0,0))
 {
  ::TranslateMessage(&msg);
  ::DispatchMessage(&msg);
 }
 return 0;
}

 

DestroyWindow(),PostquitMessage()这两个函数,我知道他们都是进行清理工作的,可不知道具体是干什么的,清高手指教!还有就是如果在MFC中编程,如果要调用WIN32API函数,需不需要和API一样要包含
头文件了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值