正確的壹段窗口(無視註釋行)
#include?<windows.h>#include?<tchar.h>
//#define?colour?RGB(0,144,76)
LRESULT?CALLBACK?WndProc?(HWND,?UINT,?WPARAM,?LPARAM)?;?
void?show();
INT32?iYX[2];
const?int WX=800;
const?int WY=600;
DWORD g_tPre=0,g_tNow=0;
HFONT hFont;
HPEN hPen;
INT32 i[2]={GetSystemMetrics?(?SM_CXSCREEN?)/2,GetSystemMetrics?(?SM_CYSCREEN?)/2};
HPEN hPenOld;
HWND hwnd?;
MSG msg={0}?;
WNDCLASS wndclass?;
HDC hdc?;?
PAINTSTRUCT ps?;
RECT rect?;
PAINTSTRUCT paintStruct;
HBITMAP g_hBitmap=NULL;?
HDC g_mdc=NULL;
BOOL id=false;
POINT?p;
int?WINAPI?WinMain?(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,PSTR?szCmdLine,?int?iCmdShow)
{
?static?TCHAR?szAppName[] =?TEXT?("HelloWin")?;
wndclass.style =?CS_HREDRAW?|?CS_VREDRAW?;? wndclass.lpfnWndProc =?WndProc?;?wndclass.cbClsExtra =?0?;?
?wndclass.cbWndExtra =?0?;
?wndclass.hInstance =?hInstance?;
?wndclass.hIcon =?LoadIcon?(NULL,?IDI_APPLICATION)?;?
?wndclass.hCursor =?LoadCursor?(NULL,?IDC_ARROW)?;?
?wndclass.hbrBackground =?(HBRUSH)?GetStockObject?(WHITE_BRUSH)?;?
?wndclass.lpszMenuName =?NULL?;
?wndclass.lpszClassName =?szAppName?;
?wndclass.hIcon =(HICON)::LoadImage(NULL,"icon.ico",IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
if?(!RegisterClass?(&wndclass))
{?
MessageBox?(?NULL,?TEXT?("出錯了!程序需要windows系統!"),?szAppName,?MB_ICONERROR)?;
return?0?;?
}
//SetCursorPos(GetSystemMetrics?(?SM_CXSCREEN?)/2,GetSystemMetrics?(?SM_CYSCREEN?)/2);
hwnd?=CreateWindow
(?szAppName,?TEXT?(""),
WS_POPUP?,
(GetSystemMetrics?(?SM_CXSCREEN?)/2)-150,(GetSystemMetrics?(?SM_CYSCREEN?)/2)-75,
300,150,
NULL,?NULL,?hInstance,NULL);?
hdc?=GetDC(hwnd);
ShowWindow?(hwnd,?iCmdShow)?;
UpdateWindow?(hwnd)?;?
while(?msg.message?!=?WM_QUIT?)
{
if(?PeekMessage(?&msg,?0,?0,?0,?PM_REMOVE?)?)
{
TranslateMessage(?&msg?);
DispatchMessage(?&msg?);
}
else
{
g_tNow=?GetTickCount();?
if(g_tNow-g_tPre?>=?100)
show();
}
}
return?msg.wParam?;
}
LRESULT?CALLBACK?WndProc?(HWND?hwnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)
{
switch?(message)
{?
case?WM_CREATE:?
return?0?;
break;
caseWM_DESTROY:?
PostQuitMessage?(0)?;
return?0;
break;
?case?WM_KEYDOWN:
if?(wParam?==?VK_ESCAPE)
DestroyWindow(hwnd);
case?WM_LBUTTONDOWN:
DestroyWindow(hwnd);
return?0?;
break;
default:
return?DefWindowProc(?hwnd,?message,?wParam,?lParam?);
}?
return?0?;
}
void?show?()
{
GetCursorPos(&p);
g_tPre?=?GetTickCount();?
DeleteObject?(?hFont?);
}