Windows程序设计第五版源代码Achap10.docx

上传人:b****5 文档编号:6995563 上传时间:2023-01-15 格式:DOCX 页数:35 大小:20.75KB
下载 相关 举报
Windows程序设计第五版源代码Achap10.docx_第1页
第1页 / 共35页
Windows程序设计第五版源代码Achap10.docx_第2页
第2页 / 共35页
Windows程序设计第五版源代码Achap10.docx_第3页
第3页 / 共35页
Windows程序设计第五版源代码Achap10.docx_第4页
第4页 / 共35页
Windows程序设计第五版源代码Achap10.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

Windows程序设计第五版源代码Achap10.docx

《Windows程序设计第五版源代码Achap10.docx》由会员分享,可在线阅读,更多相关《Windows程序设计第五版源代码Achap10.docx(35页珍藏版)》请在冰豆网上搜索。

Windows程序设计第五版源代码Achap10.docx

Windows程序设计第五版源代码Achap10

chap10-IconDemo

/*------------------------------------------

ICONDEMO.C--IconDemonstrationProgram

(c)CharlesPetzold,1998

------------------------------------------*/

#include

#include"resource.h"

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,

PSTRszCmdLine,intiCmdShow)

{

TCHARszAppName[]=TEXT("IconDemo");

HWNDhwnd;

MSGmsg;

WNDCLASSwndclass;

wndclass.style=CS_HREDRAW|CS_VREDRAW;

wndclass.lpfnWndProc=WndProc;

wndclass.cbClsExtra=0;

wndclass.cbWndExtra=0;

wndclass.hInstance=hInstance;

wndclass.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON));

wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);

wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);

wndclass.lpszMenuName=NULL;

wndclass.lpszClassName=szAppName;

if(!

RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!

"),

szAppName,MB_ICONERROR);

return0;

}

hwnd=CreateWindow(szAppName,TEXT("IconDemo"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,

NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

returnmsg.wParam;

}

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

staticHICONhIcon;

staticintcxIcon,cyIcon,cxClient,cyClient;

HDChdc;

HINSTANCEhInstance;

PAINTSTRUCTps;

intx,y;

switch(message)

{

caseWM_CREATE:

hInstance=((LPCREATESTRUCT)lParam)->hInstance;

hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON));

cxIcon=GetSystemMetrics(SM_CXICON);

cyIcon=GetSystemMetrics(SM_CYICON);

return0;

caseWM_SIZE:

cxClient=LOWORD(lParam);

cyClient=HIWORD(lParam);

return0;

caseWM_PAINT:

hdc=BeginPaint(hwnd,&ps);

for(y=0;y

for(x=0;x

DrawIcon(hdc,x,y,hIcon);

EndPaint(hwnd,&ps);

return0;

caseWM_DESTROY:

PostQuitMessage(0);

return0;

}

returnDefWindowProc(hwnd,message,wParam,lParam);

}

 

chap10-IconDemoÍ·Îļþ

//{{NO_DEPENDENCIES}}

//MicrosoftDeveloperStudiogeneratedincludefile.

//UsedbyIconDemo.rc

//

#defineIDI_ICON101

//Nextdefaultvaluesfornewobjects

//

#ifdefAPSTUDIO_INVOKED

#ifndefAPSTUDIO_READONLY_SYMBOLS

#define_APS_NEXT_RESOURCE_VALUE106

#define_APS_NEXT_COMMAND_VALUE40001

#define_APS_NEXT_CONTROL_VALUE1000

#define_APS_NEXT_SYMED_VALUE101

#endif

#endif

 

chap10-MenuDemo

/*-----------------------------------------

MENUDEMO.C--MenuDemonstration

(c)CharlesPetzold,1998

-----------------------------------------*/

#include

#include"resource.h"

#defineID_TIMER1

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

TCHARszAppName[]=TEXT("MenuDemo");

intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,

PSTRszCmdLine,intiCmdShow)

{

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=szAppName;

wndclass.lpszClassName=szAppName;

if(!

RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!

"),

szAppName,MB_ICONERROR);

return0;

}

hwnd=CreateWindow(szAppName,TEXT("MenuDemonstration"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,

NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

returnmsg.wParam;

}

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

staticintidColor[5]={WHITE_BRUSH,LTGRAY_BRUSH,GRAY_BRUSH,

DKGRAY_BRUSH,BLACK_BRUSH};

staticintiSelection=IDM_BKGND_WHITE;

HMENUhMenu;

switch(message)

{

caseWM_COMMAND:

hMenu=GetMenu(hwnd);

switch(LOWORD(wParam))

{

caseIDM_FILE_NEW:

caseIDM_FILE_OPEN:

caseIDM_FILE_SAVE:

caseIDM_FILE_SAVE_AS:

MessageBeep(0);

return0;

caseIDM_APP_EXIT:

SendMessage(hwnd,WM_CLOSE,0,0);

return0;

caseIDM_EDIT_UNDO:

caseIDM_EDIT_CUT:

caseIDM_EDIT_COPY:

caseIDM_EDIT_PASTE:

caseIDM_EDIT_CLEAR:

MessageBeep(0);

return0;

caseIDM_BKGND_WHITE:

//Note:

Logicbelow

caseIDM_BKGND_LTGRAY:

//assumesthatIDM_WHITE

caseIDM_BKGND_GRAY:

//throughIDM_BLACKare

caseIDM_BKGND_DKGRAY:

//consecutivenumbersin

caseIDM_BKGND_BLACK:

//theordershownhere.

CheckMenuItem(hMenu,iSelection,MF_UNCHECKED);

iSelection=LOWORD(wParam);

CheckMenuItem(hMenu,iSelection,MF_CHECKED);

SetClassLong(hwnd,GCL_HBRBACKGROUND,(LONG)

GetStockObject

(idColor[LOWORD(wParam)-IDM_BKGND_WHITE]));

InvalidateRect(hwnd,NULL,TRUE);

return0;

caseIDM_TIMER_START:

if(SetTimer(hwnd,ID_TIMER,1000,NULL))

{

EnableMenuItem(hMenu,IDM_TIMER_START,MF_GRAYED);

EnableMenuItem(hMenu,IDM_TIMER_STOP,MF_ENABLED);

}

return0;

caseIDM_TIMER_STOP:

KillTimer(hwnd,ID_TIMER);

EnableMenuItem(hMenu,IDM_TIMER_START,MF_ENABLED);

EnableMenuItem(hMenu,IDM_TIMER_STOP,MF_GRAYED);

return0;

caseIDM_APP_HELP:

MessageBox(hwnd,TEXT("Helpnotyetimplemented!

"),

szAppName,MB_ICONEXCLAMATION|MB_OK);

return0;

caseIDM_APP_ABOUT:

MessageBox(hwnd,TEXT("MenuDemonstrationProgram\n")

TEXT("(c)CharlesPetzold,1998"),

szAppName,MB_ICONINFORMATION|MB_OK);

return0;

}

break;

caseWM_TIMER:

MessageBeep(0);

return0;

caseWM_DESTROY:

PostQuitMessage(0);

return0;

}

returnDefWindowProc(hwnd,message,wParam,lParam);

}

 

chap10-MenuDemoÍ·Îļþ

//{{NO_DEPENDENCIES}}

//MicrosoftDeveloperStudiogeneratedincludefile.

//UsedbyMenuDemo.rc

//

#defineIDM_FILE_NEW40001

#defineIDM_FILE_OPEN40002

#defineIDM_FILE_SAVE40003

#defineIDM_FILE_SAVE_AS40004

#defineIDM_APP_EXIT40005

#defineIDM_EDIT_UNDO40006

#defineIDM_EDIT_CUT40007

#defineIDM_EDIT_COPY40008

#defineIDM_EDIT_PASTE40009

#defineIDM_EDIT_CLEAR40010

#defineIDM_BKGND_WHITE40011

#defineIDM_BKGND_LTGRAY40012

#defineIDM_BKGND_GRAY40013

#defineIDM_BKGND_DKGRAY40014

#defineIDM_BKGND_BLACK40015

#defineIDM_TIMER_START40016

#defineIDM_TIMER_STOP40017

#defineIDM_APP_HELP40018

#defineIDM_APP_ABOUT40019

#defineID_MENUITEM4002040020

//Nextdefaultvaluesfornewobjects

//

#ifdefAPSTUDIO_INVOKED

#ifndefAPSTUDIO_READONLY_SYMBOLS

#define_APS_NEXT_RESOURCE_VALUE102

#define_APS_NEXT_COMMAND_VALUE40021

#define_APS_NEXT_CONTROL_VALUE1000

#define_APS_NEXT_SYMED_VALUE101

#endif

#endif

 

chap10-NoPopups

/*-------------------------------------------------

NOPOPUPS.C--DemonstratesNo-PopupNestedMenu

(c)CharlesPetzold,1998

-------------------------------------------------*/

#include

#include"resource.h"

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,

PSTRszCmdLine,intiCmdShow)

{

staticTCHARszAppName[]=TEXT("NoPopUps");

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,

TEXT("No-PopupNestedMenuDemonstration"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,

NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

returnmsg.wParam;

}

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

staticHMENUhMenuMain,hMenuEdit,hMenuFile;

HINSTANCEhInstance;

switch(message)

{

caseWM_CREATE:

hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);

hMenuMain=LoadMenu(hInstance,TEXT("MenuMain"));

hMenuFile=LoadMenu(hInstance,TEXT("MenuFile"));

hMenuEdit=LoadMenu(hInstance,TEXT("MenuEdit"));

SetMenu(hwnd,hMenuMain);

return0;

caseWM_COMMAND:

switch(LOWORD(wParam))

{

caseIDM_MAIN:

SetMenu(hwnd,hMenuMain);

return0;

caseIDM_FILE:

SetMenu(hwnd,hMenuFile);

return0;

caseIDM_EDIT:

SetMenu(hwnd,hMenuEdit);

return0;

caseIDM_FILE_NEW:

caseIDM_FILE_OPEN:

caseIDM_FILE_SAVE:

caseIDM_FILE_SAVE_AS:

caseIDM_EDIT_UNDO:

caseIDM_EDIT_CUT:

caseIDM_EDIT_COPY:

caseIDM_EDIT_PASTE:

caseIDM_EDIT_CLEAR:

MessageBeep(0);

return0;

}

break;

caseWM_DESTROY:

SetMenu(hwnd,hMenuMain);

DestroyMenu(hMenuFile);

DestroyMenu(hMenuEdit);

PostQuitMessage(0);

return0;

}

returnDefWindowProc(hwnd,message,wPa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1