Windows程序设计第五版源代码Achap0105.docx
- 文档编号:4331137
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:76
- 大小:26.50KB
Windows程序设计第五版源代码Achap0105.docx
《Windows程序设计第五版源代码Achap0105.docx》由会员分享,可在线阅读,更多相关《Windows程序设计第五版源代码Achap0105.docx(76页珍藏版)》请在冰点文库上搜索。
Windows程序设计第五版源代码Achap0105
chap01
/*--------------------------------------------------------------
HelloMsg.c--Displays"Hello,Windows98!
"inamessagebox
(c)CharlesPetzold,1998
--------------------------------------------------------------*/
#include
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
PSTRszCmdLine,intiCmdShow)
{
MessageBox(NULL,TEXT("Hello,Windows98!
"),TEXT("HelloMsg"),0);
return0;
}
chap02
/*-----------------------------------------------------
SCRNSIZE.C--Displaysscreensizeinamessagebox
(c)CharlesPetzold,1998
-----------------------------------------------------*/
#include
#include
#include
intCDECLMessageBoxPrintf(TCHAR*szCaption,TCHAR*szFormat,...)
{
TCHARszBuffer[1024];
va_listpArgList;
//Theva_startmacro(definedinSTDARG.H)isusuallyequivalentto:
//pArgList=(char*)&szFormat+sizeof(szFormat);
va_start(pArgList,szFormat);
//Thelastargumenttowvsprintfpointstothearguments
_vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(TCHAR),
szFormat,pArgList);
//Theva_endmacrojustzeroesoutpArgListfornogoodreason
va_end(pArgList);
returnMessageBox(NULL,szBuffer,szCaption,0);
}
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
PSTRszCmdLine,intiCmdShow)
{
intcxScreen,cyScreen;
cxScreen=GetSystemMetrics(SM_CXSCREEN);
cyScreen=GetSystemMetrics(SM_CYSCREEN);
MessageBoxPrintf(TEXT("ScrnSize"),
TEXT("Thescreenis%ipixelswideby%ipixelshigh."),
cxScreen,cyScreen);
return0;
}
chap03
/*------------------------------------------------------------
HELLOWIN.C--Displays"Hello,Windows98!
"inclientarea
(c)CharlesPetzold,1998
------------------------------------------------------------*/
#include
LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
PSTRszCmdLine,intiCmdShow)
{
staticTCHARszAppName[]=TEXT("HelloWin");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;
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;
if(!
RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!
"),
szAppName,MB_ICONERROR);
return0;
}
hwnd=CreateWindow(szAppName,//windowclassname
TEXT("TheHelloProgram"),//windowcaption
WS_OVERLAPPEDWINDOW,//windowstyle
CW_USEDEFAULT,//initialxposition
CW_USEDEFAULT,//initialyposition
CW_USEDEFAULT,//initialxsize
CW_USEDEFAULT,//initialysize
NULL,//parentwindowhandle
NULL,//windowmenuhandle
hInstance,//programinstancehandle
NULL);//creationparameters
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
switch(message)
{
caseWM_CREATE:
PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);
return0;
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("Hello,Windows98!
"),-1,&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return0;
caseWM_DESTROY:
PostQuitMessage(0);
return0;
}
returnDefWindowProc(hwnd,message,wParam,lParam);
}
chap04-1
/*------------------------------------------------------------
HELLOWIN.C--Displays"Hello,Windows98!
"inclientarea
(c)CharlesPetzold,1998
------------------------------------------------------------*/
#include
LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
PSTRszCmdLine,intiCmdShow)
{
staticTCHARszAppName[]=TEXT("HelloWin");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;
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;
if(!
RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!
"),
szAppName,MB_ICONERROR);
return0;
}
hwnd=CreateWindow(szAppName,//windowclassname
TEXT("TheHelloProgram"),//windowcaption
WS_OVERLAPPEDWINDOW,//windowstyle
CW_USEDEFAULT,//initialxposition
CW_USEDEFAULT,//initialyposition
CW_USEDEFAULT,//initialxsize
CW_USEDEFAULT,//initialysize
NULL,//parentwindowhandle
NULL,//windowmenuhandle
hInstance,//programinstancehandle
NULL);//creationparameters
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
switch(message)
{
caseWM_CREATE:
PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);
return0;
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("Hello,Windows98!
"),-1,&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return0;
caseWM_DESTROY:
PostQuitMessage(0);
return0;
}
returnDefWindowProc(hwnd,message,wParam,lParam);
}
chap04-1Í·Îļþ
/*-----------------------------------------------
SYSMETS.H--Systemmetricsdisplaystructure
-----------------------------------------------*/
#defineNUMLINES((int)(sizeofsysmetrics/sizeofsysmetrics[0]))
struct
{
intiIndex;
TCHAR*szLabel;
TCHAR*szDesc;
}
sysmetrics[]=
{
SM_CXSCREEN,TEXT("SM_CXSCREEN"),
TEXT("Screenwidthinpixels"),
SM_CYSCREEN,TEXT("SM_CYSCREEN"),
TEXT("Screenheightinpixels"),
SM_CXVSCROLL,TEXT("SM_CXVSCROLL"),
TEXT("Verticalscrollwidth"),
SM_CYHSCROLL,TEXT("SM_CYHSCROLL"),
TEXT("Horizontalscrollheight"),
SM_CYCAPTION,TEXT("SM_CYCAPTION"),
TEXT("Captionbarheight"),
SM_CXBORDER,TEXT("SM_CXBORDER"),
TEXT("Windowborderwidth"),
SM_CYBORDER,TEXT("SM_CYBORDER"),
TEXT("Windowborderheight"),
SM_CXFIXEDFRAME,TEXT("SM_CXFIXEDFRAME"),
TEXT("Dialogwindowframewidth"),
SM_CYFIXEDFRAME,TEXT("SM_CYFIXEDFRAME"),
TEXT("Dialogwindowframeheight"),
SM_CYVTHUMB,TEXT("SM_CYVTHUMB"),
TEXT("Verticalscrollthumbheight"),
SM_CXHTHUMB,TEXT("SM_CXHTHUMB"),
TEXT("Horizontalscrollthumbwidth"),
SM_CXICON,TEXT("SM_CXICON"),
TEXT("Iconwidth"),
SM_CYICON,TEXT("SM_CYICON"),
TEXT("Iconheight"),
SM_CXCURSOR,TEXT("SM_CXCURSOR"),
TEXT("Cursorwidth"),
SM_CYCURSOR,TEXT("SM_CYCURSOR"),
TEXT("Cursorheight"),
SM_CYMENU,TEXT("SM_CYMENU"),
TEXT("Menubarheight"),
SM_CXFULLSCREEN,TEXT("SM_CXFULLSCREEN"),
TEXT("Fullscreenclientareawidth"),
SM_CYFULLSCREEN,TEXT("SM_CYFULLSCREEN"),
TEXT("Fullscreenclientareaheight"),
SM_CYKANJIWINDOW,TEXT("SM_CYKANJIWINDOW"),
TEXT("Kanjiwindowheight"),
SM_MOUSEPRESENT,TEXT("SM_MOUSEPRESENT"),
TEXT("Mousepresentflag"),
SM_CYVSCROLL,TEXT("SM_CYVSCROLL"),
TEXT("Verticalscrollarrowheight"),
SM_CXHSCROLL,TEXT("SM_CXHSCROLL"),
TEXT("Horizontalscrollarrowwidth"),
SM_DEBUG,TEXT("SM_DEBUG"),
TEXT("Debugversionflag"),
SM_SWAPBUTTON,TEXT("SM_SWAPBUTTON"),
TEXT("Mousebuttonsswappedflag"),
SM_CXMIN,TEXT("SM_CXMIN"),
TEXT("Minimumwindowwidth"),
SM_CYMIN,TEXT("SM_CYMIN"),
TEXT("Minimumwindowheight"),
SM_CXSIZE,TEXT("SM_CXSIZE"),
TEXT("Min/Max/Closebuttonwidth"),
SM_CYSIZE,TEXT("SM_CYSIZE"),
TEXT("Min/Max/Closebuttonheight"),
SM_CXSIZEFRAME,TEXT("SM_CXSIZEFRAME"),
TEXT("Windowsizingframewidth"),
SM_CYSIZEFRAME,TEXT("SM_CYSIZEFRAME"),
TEXT("Windowsizingframeheight"),
SM_CXMINTRACK,TEXT("SM_CXMINTRACK"),
TEXT("Minimumwindowtrackingwidth"),
SM_CYMINTRACK,TEXT("SM_CYMINTRACK"),
TEXT("Minimumwindowtrackingheight"),
SM_CXDOUBLECLK,TEXT("SM_CXDOUBLECLK"),
TEXT("Doubleclickxtolerance"),
SM_CYDOUBLECLK,TEXT("SM_CYDOUBLECLK"),
TEXT("Doubleclickytolerance"),
SM_CXICONSPACING,TEXT("SM_CXICONSPACING"),
TEXT("Horizontaliconspacing"),
SM_CYICONSPACING,TEXT("SM_CYICONSPACING"),
TEXT("Verticaliconspacing"),
SM_MENUDROPALIGNMENT,TEXT("SM_MENUDROPALIGNMENT"),
TEXT("Leftorrightmenudrop"),
SM_PENWINDOWS,TEXT("SM_PENWINDOWS"),
TEXT("Penextensionsinstalled"),
SM_DBCSENABLED,TEXT("SM_DBCSENABLED"),
TEXT("Double-ByteCharSetenabled"),
SM_CMOUSEBUTTONS,TEXT("SM_CMOUSEBUTTONS"),
TEXT("Numberofmousebuttons"),
SM_SECURE,TEXT("SM_SECURE"),
TEXT("Securitypresentflag"),
SM_CXEDGE,TEXT("SM_CXEDGE"),
TEXT("3-Dborderwidth"),
SM_CYEDGE,TEXT("SM_CYEDGE"),
TEXT("3-Dborderheight"),
SM_CXMINSPACING,TEXT("SM_CXMINSPACING"),
TEXT("Minimizedwindowspacingwidth"),
SM_CYMINSPACING,TEXT("SM_CYMINSPACING"),
T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 程序设计 第五 源代码 Achap0105