资源简介
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 < NUM; 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聊天程序
评论
共有 条评论