資源簡介
VC++面向對象與可視化程序設計第三版課本例題源代碼

代碼片段和文件信息
#include?
#include
#define?DIVISIONS?5
#include?
#define?Pi?3.1415926
#define?R?50 //風車半徑
#define?NUM?3 //子窗口個數
int?nMaxNum?=?20; //nMaxNum記錄了葉片循環一周中繪圖的次數.
LRESULT?CALLBACK?WndProc?(HWND?UINT?WPARAM?LPARAM)?;
LRESULT?CALLBACK?ChildWndProc(HWND?UINT?WPARAM?LPARAM)?;
TCHAR?szChildClass[]?=?TEXT?(“ChildWindow“)?;
int?WINAPI?WinMain?(HINSTANCE?hInstance?HINSTANCE?hPrevInstancePSTR?szCmdLine?int?iCmdShow)
{
static?TCHAR?szAppName[]?=?TEXT?(“Checker3“)?;
HWND?hwnd?;
MSG?msg?;
WNDCLASS?wndclass?;
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?=?CreateSolidBrush(RGB(2552550));//(HBRUSH)?GetStockobject?(WHITE_BRUSH)?;
wndclass.lpszMenuName?=?NULL?;
wndclass.lpszClassName?=?szAppName?;
if?(!RegisterClass?(&wndclass))
{
MessageBox?(?NULL?TEXT?(“Program?requires?Windows?NT!“)szAppName?MB_IConerror)?;
return?0?;
}
wndclass.lpfnWndProc?=?ChildWndProc?;
wndclass.cbWndExtra?=?2*sizeof?(long)?;
wndclass.hbrBackground?=?(HBRUSH)?GetStockobject?(NULL_BRUSH)?;//設子窗口的背景為透明
wndclass.lpszClassName?=?szChildClass?;
RegisterClass?(&wndclass)?; //注冊子窗口類型
hwnd?=?CreateWindow?(szAppName?TEXT?(“主窗口與子窗口“)
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)?;
}
return?msg.wParam?;
}
//主窗口消息處理函數.
LRESULT?CALLBACK?WndProc?(HWND?hwnd?UINT?message?WPARAM?wParamLPARAM?lParam)
{
static?HWND?hwndChild[NUM]?;
static?int?cxBlock?cyBlock;
static?POINT?ps;
int?i;
switch?(message)
{
case?WM_CREATE?:
for(?i?=?0;?i? {
hwndChild[i]?=?CreateWindow?(szChildClass?NULL
WS_CHILDWINDOW?|?WS_VISIBLE/*?|?WS_SYSMENU|?WS_CAPTION*/?
0?0?0?0
hwnd?(HMENU)i //子窗口的ID值
(HINSTANCE)?GetWindowLong(hwnd?GWL_HINSTANCE)
NULL)?;
SetWindowLong(hwndChild[i]0i); //設定窗口第一個附加信息-窗口序號
SetWindowLong(hwndChild[i]40); //設定窗口第二個附加信息-窗口風車轉動次數
SetTimer(hwndChild[i]i(i+1)*300);
}
return?0?;
case?WM_SIZE?: //將子窗口按合適的尺寸和位置置于主窗口中
cxBlock?=?LOWORD?(lParam)?/?2?;
cyBlock?=?HIWORD?(lParam)?/?2?;
for(?i=0;?i MoveWindow?(?hwndChild[i]R+i*(2*R+20)?cyBlock-R2*R?2*R?TRUE)?;
return?0?;
case?WM_LBUTTONDOWN?:
MessageBeep?(0)?;
return?0?;
case?WM_DESTROY?:
PostQuitMessage?(0)?;
return?0?;
}
return?DefWindowProc?(hwnd?message?wParam?lParam)?;
}
//子窗口消息處理函數.
long?WINAPI?ChildWndProc(HWND?hWndUINT?iMessageUINT?wParamLONG?lParam)
{
HDC?hDC; //定義設備環境句柄.
HBRUSH?hBrush; //定義
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11904??2002-10-07?20:00??p65\banana.ani
?????文件???????1700??2002-10-07?20:00??p65\handnesw.ani
?????文件????????766??2002-10-07?20:00??p65\hnodrop.cur
?????文件????????766??2002-10-07?20:00??p65\hnwse.cur
?????文件??????18722??2002-10-07?20:00??p65\horse.ani
?????文件???????2783??2011-04-07?16:37??p65\p65.cpp
?????文件???????3886??2011-04-07?16:35??p65\p65.dsp
?????文件????????531??2011-04-07?16:20??p65\p65.dsw
?????文件??????33792??2011-04-07?16:37??p65\p65.ncb
?????文件??????48640??2011-04-07?16:37??p65\p65.opt
?????文件????????861??2011-04-07?16:36??p65\p65.plg
?????文件???????3897??2012-02-21?19:08??p31\03_1.dsp
?????文件????????531??2000-02-13?23:10??p31\03_1.dsw
?????文件??????58368??2012-02-21?19:08??p31\03_1.ncb
?????文件??????48640??2012-02-21?19:08??p31\03_1.opt
?????文件????????872??2012-02-21?19:08??p31\03_1.plg
?????文件???????2652??2012-02-21?19:05??p31\p31.cpp
?????文件???????5197??2012-02-23?13:53??p41\p41.cpp
?????文件???????3882??2003-09-26?16:10??p41\p41.dsp
?????文件????????529??2003-09-26?16:09??p41\p41.dsw
?????文件??????41984??2012-02-23?14:38??p41\p41.ncb
?????文件??????48640??2012-02-23?14:38??p41\p41.opt
?????文件???????1118??2012-02-23?13:53??p41\p41.plg
?????文件???????5278??2012-02-23?15:56??p42\p42.cpp
?????文件???????3886??2012-02-23?15:56??p42\p42.dsp
?????文件????????531??2012-02-23?14:41??p42\p42.dsw
?????文件??????33792??2012-02-23?15:56??p42\p42.ncb
?????文件??????48640??2012-02-23?15:56??p42\p42.opt
?????文件???????1779??2012-02-23?15:40??p42\p42.plg
?????文件???????6399??2012-02-23?19:55??p43\p43.cpp
............此處省略75個文件信息
- 上一篇:MFC實現圖形放大縮小
- 下一篇:用c++寫的一個udp聊天程序
評論
共有 條評論