#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一样要包含
头文件了!