当前位置:文档之家› 《Windows程序设计》实验教学大纲

《Windows程序设计》实验教学大纲

《Windows程序设计》实验教学大纲
《Windows程序设计》实验教学大纲

《Windows程序设计》实验教学大纲

实验学时:32学时实验个数:11 实验学分:1

课程性质:(必做)适用专业:计算机科学与技术、软件工程、网络工程

教材及参考书:《Visual C++面向对象与可视化程序设计教程》(第三版)

大纲执笔人:大纲审定人:郭涛

一、实验课的性质与任务

本课程实验大纲是面向计算机相关专业学生开设的《Windows程序设计》(以VC++为开发环境)实验课计划指导大纲,是依据《Windows程序设计》课程教学计划指导大纲编制。本课程主要讲述了利用Windows API函数和MFC进行简单的Windows程序开发的基本流程,结合该课程教学计划大纲的相应内容,设计了10个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。使学生在实验过程中掌握Windows程序设计的思想、原理,能使用SDK和MFC实现基于窗口的程序设计。

二、实验课程目的与要求

1.实验目的:

Windows程序设计实验课的开设,是为了使学生更好地理解和掌握运用VC开发环境开发Windows程序设计的基本理论、基本方法和基本技术,强化程序设计能力。

2.实验要求:

1)在实验中,要求学生个人独立思考,设计算法流程,编写出程序,完成上机调试,

最后给出实验报告。

2)本课程的学习过程是复杂程序设计的训练过程,要求学生编写的程序结构清楚、

正确易读,符合软件工程的规范;

a)3) 在实验中更好地理解和掌握VC程序设计这门课程中所学的基本理论和方法,

强化程序设计能力。

四、实验内容安排:

实验一Visual C++6.0开发环境实验

(验证性实验2学时)

1、目的要求:

了解Visual C++6.0的特点,熟悉Visual C++6.0的开发环境。

2、实验内容:

了解和熟悉开发环境,对各种菜单功能,工程文件管理和MSDN帮助功能有完整的了解。

3、主要仪器设备及药品

Windows 2000+VC 6.0+MSDN

实验二Windows应用程序基本框架实验

(验证性实验2学时)

1、目的要求:

编写第一个Windows程序,理解入口函数Winmain和窗口函数WinProc,掌握消息驱动机制。

2、实验内容:

使用Win32 Application模板建立一个Win32工程,编写一个包含WinMain, WinProc的基本Windows程序,并编译、运行,观察结果。

3、主要仪器设备及药品

Windows 2000+VC 6.0+MSDN

实验三Windows绘图试验

(验证性实验4学时)

1、目的要求:

理解DC概念,掌握坐标映射的设置方法,熟悉Windows绘图的基本方法和函数。2、实验内容:

运用Windows提供的GDI函数,完成窗口图形输出功能。

1)将窗口划分为5个区域,并用白色到黑色线性变化的颜色填充这5个区域,画一条斜线穿过这5个区域;

源代码:

#include

#include

#include

long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam);

BOOL InitWindowsClass(HINSTANCE hInstance);

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);

//主函数

int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{

MSG Message;

if (!InitWindowsClass(hInstance)) return FALSE;

if (!InitWindows(hInstance, nCmdShow)) return FALSE;

while (GetMessage(&Message, 0, 0, 0)) //消息循环

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

return Message.wParam;

}

long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam)

{

HDC hDC; //定义设备环境句柄

HBRUSH hBrush; //定义画刷的句柄

HPEN hPen; //定义画笔的句柄

PAINTSTRUCT PtStr; //定义指向包含绘图信息的结构体变量

switch (iMessage) //处理消息

{

case WM_PAINT: //处理绘图消息

MoveWindow(hWnd, 0, 0, 500,400, NULL);//初始化窗口大小

hDC = BeginPaint(hWnd, &PtStr);

hPen = (HPEN)GetStockObject(NULL_PEN); //获取系统定义的空画笔

SelectObject(hDC, hPen); //选择画笔

hBrush = (HBRUSH)GetStockObject(BLACK_BRUSH); //获取系统定义的画刷hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0)); //创建画笔

SelectObject(hDC, hPen); //选择画笔

//MoveToEx(hDC, 0, 150, NULL); LineTo(hDC, 750,150 );

hBrush = (HBRUSH)GetStockObject(WHITE_BRUSH);

SelectObject(hDC,hBrush);

Rectangle(hDC,0,0,100,400);

hBrush = (HBRUSH)GetStockObject(LTGRAY_BRUSH);

SelectObject(hDC, hBrush);

Rectangle(hDC, 100,0,200, 400);

hBrush = (HBRUSH)GetStockObject(GRAY_BRUSH);

SelectObject(hDC, hBrush);

Rectangle(hDC,200,0,300, 400);

hBrush = (HBRUSH)GetStockObject(DKGRAY_BRUSH);

SelectObject(hDC, hBrush);

Rectangle(hDC, 300,0,400, 400);

hBrush = (HBRUSH)GetStockObject(BLACK_BRUSH);

SelectObject(hDC, hBrush);

Rectangle(hDC, 400,0,500, 400);

hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0)); //创建画笔

SelectObject(hDC, hPen); //选择画笔

MoveToEx(hDC, 0, 0, NULL); LineTo(hDC, 500,400);

DeleteObject(hPen); //删除画笔

DeleteObject(hBrush); //删除画刷

EndPaint(hWnd, &PtStr); //结束绘图

return 0;

case WM_DESTROY: //结束应用程序

PostQuitMessage(0);

return 0;

default://其他消息处理程序

return(DefWindowProc(hWnd, iMessage, wParam, lParam));

}

}

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) //初始化窗口

{

HWND hWnd;

hWnd = CreateWindow("WinFill", //生成窗口"填充示例程序",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

0,

CW_USEDEFAULT,

0,

NULL,

NULL,

hInstance,

NULL);

if (!hWnd)

return FALSE;

ShowWindow(hWnd, nCmdShow); //显示窗口

UpdateWindow(hWnd);

return TRUE;

}

BOOL InitWindowsClass(HINSTANCE hInstance) //定义窗口类

{

WNDCLASS WndClass;

WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);

WndClass.hIcon = LoadIcon(NULL, "END");

WndClass.hInstance = hInstance;

WndClass.lpfnWndProc = WndProc;

WndClass.lpszClassName = "WinFill";

WndClass.lpszMenuName = NULL;

WndClass.style = CS_HREDRAW | CS_VREDRAW;

return RegisterClass(&WndClass);

}

截图:

2)编写一个程序,在屏幕上出现一个圆心沿正弦曲线轨迹移动的实心圆,而且,每隔四分之一周期,圆的填充色和圆的周边颜色都发生变化,同时,圆的半径在四分之一周期之内由正弦曲线幅值的0.2倍至0.6倍线性增长。

源代码:

#include

#include

#include

#include

#define Pi 3.1415926

long WINAPI WndProc(HWND hWnd, UINT iMessage,

UINT wParam, LONG lParam);

double dfTheta = 0, dfRange = 100.0; //正弦曲线的角度变量.

long i = 0, j = 0;

long lCentreX = 0, lCentreY = 0, lRadious = (long)(0.2*dfRange);

//定义圆心坐标和圆半径.

POINT lpSin[100]; //定义正弦曲线的点坐标.

int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{ // 填写窗口类属性

HWND hWnd; MSG Message; WNDCLASS WndClass;

WndClass.style = 0;//填写属性

WndClass.lpfnWndProc = WndProc;

WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

WndClass.hInstance = hInstance;

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);

WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

WndClass.lpszMenuName = NULL;

WndClass.lpszClassName = "SIN";

WndClass.hIcon = LoadIcon(NULL, "END");

if (!RegisterClass(&WndClass)) //注册窗口.

{

MessageBeep(0); return FALSE;

}

hWnd = CreateWindow

("SIN", //窗口类名.

"4_6", //标题名.

WS_OVERLAPPEDWINDOW, //带标题栏,最大/小按钮的窗口

CW_USEDEFAULT, //窗口左上角坐标.

0,

CW_USEDEFAULT, //采用缺省的宽度和高度.

0,

NULL, //无父窗口.

NULL, //无主菜单.

hInstance, //当前实例句柄.

NULL);

ShowWindow(hWnd, nCmdShow); //显示窗口.

UpdateWindow(hWnd); //更新并绘制用户区.

for (int j = 0; j<100; j++) //生成正弦曲线的点坐标.

{

lpSin[j].x = (long)(j * 2 * Pi / 100 * 60);

lpSin[j].y = (long)(dfRange*sin(j * 2 * Pi / 100));

}

while (GetMessage(&Message, 0, 0, 0))

{

TranslateMessage(&Message); //消息循环.

DispatchMessage(&Message);

}

return Message.wParam;

}

long WINAPI WndProc(HWND hWnd, UINT iMessage,

UINT wParam, LONG lParam)

{

HDC hDC; //定义设备环境句柄.

HBRUSH hBrush; //定义画刷句柄

HPEN hPen; //定义画笔句柄

PAINTSTRUCT PtStr;//定义包含绘图信息的结构体变量

switch (iMessage)

{

case WM_PAINT: //处理绘图消息

hDC = BeginPaint(hWnd, &PtStr); //获得设备环境指针

SetWindowOrgEx(hDC, -200, -200, NULL);//设置原点坐标

hPen = CreatePen(PS_DASH, 1, RGB(255, 0, 0)); //建新画笔

SelectObject(hDC, hPen); //选入画笔

Polyline(hDC, lpSin, 100); //绘制正弦曲线

if (i <= 25) //第一个1/4周期.

{

hPen = CreatePen(PS_DASH, 1, RGB(255, 0, 0));

hBrush = CreateHatchBrush(HS_BDIAGONAL, RGB(255, 0, 0));

lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25); //计算半径}

else if (i <= 50)//第二个1/4周期.

{

hPen = CreatePen(PS_DASH, 1, RGB(0, 255, 0));

hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 0));

lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25);

}

else if (i <= 75)//第三个周期.

{

hPen = CreatePen(PS_DASH, 1, RGB(0, 0, 255));

hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 0, 255));

lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25);

}

else//第四个周期.

{

hPen = CreatePen(PS_DASH, 1, RGB(255, 255, 0));

hBrush = CreateHatchBrush(HS_VERTICAL, RGB(255, 255, 0));

lRadious = (long)(dfRange*0.2 + i % 25 * dfRange*0.4 / 25);

}

SelectObject(hDC, hBrush); //选入画刷.

SelectObject(hDC, hPen); //选入画笔.

lCentreX = lpSin[i].x; //圆心x坐标.

lCentreY = lpSin[i].y; //圆心y坐标.

Ellipse(hDC, lCentreX - lRadious, lCentreY - lRadious,

lCentreX + lRadious, lCentreY + lRadious); //画圆

i++;

DeleteObject(hPen); //删除画笔

DeleteObject(hBrush); //删除画刷

EndPaint(hWnd, &PtStr); //删除设备环境指针

Sleep(100); //停0.1秒

if (i<100) InvalidateRect(hWnd, NULL, 1); //刷新用户区

return 0;

case WM_DESTROY: //关闭窗口.

PostQuitMessage(0); return 0;

default

return(DefWindowProc(hWnd, iMessage, wParam, lParam));

}

return 0;

}

截图:

3、主要仪器设备及药品

Windows 2000+VC 6.0+MSDN

实验四文本的输出方法与字体设置

(验证性实验2学时)

1、目的要求:

理解字体句柄的念,熟悉Windows文字输出的基本方法和函数,学习字体格式的控制。

2、实验内容:(选做1个)

1)在窗口中显示出26个英文字母,从左向右字母依次位置提高10个像素单位,并且

颜色变为红色,然后回到正常位置;当到达最右端后改变方向从右向左依次变成红色并位置提高10个像素单位。在窗口的第二行显示26个字母,字体从正常到斜体,颜色从黑色到天蓝色不断变换。

源代码:

#include

#include

#include

#include

LRESULT CALLBACK WndProc(HWND hwnd, UINT message,

WPARAM wParam, LPARAM lParam);

BOOL InitWindowsClass(HINSTANCE hInstance);

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);

//主函数

int WINAPI WinMain(

HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

MSG Message;

if (!InitWindowsClass(hInstance)) return FALSE;

if (!InitWindows(hInstance, nCmdShow))return FALSE;

while (GetMessage(&Message, 0, 0, 0))//消息循环

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

return Message.wParam;

}

//消息处理函数

LRESULT CALLBACK WndProc(HWND hwnd, UINT message,

WPARAM wParam, LPARAM lParam)

{

HDC hDC; //设备句柄

PAINTSTRUCT ps; //画刷结构

int X = 0, Y = 0, i = 0, nCharlen = 26;

static int nChar = 0;

char lpsz_1[] = "abcdefghijklmnopqrstuvwxyz";

char lpsz_2[] = "abcdefghijklmnopqrstuvwxyz";

static BOOL bLeft = FALSE, bRight = TRUE;

TEXTMETRIC tm;

int j;

SIZE size;

RECT rect; //无效矩形区

HFONT holdFont, hnewFont;

switch (message) //消息处理函数

{

case WM_CREATE: //窗口创建

//SetTimer(hwnd,1,1,NULL);

return 0;

case WM_TIMER:

InvalidateRect(hwnd, &rect, 1);

return 0;

case WM_PAINT: //绘制消息

hnewFont = CreateFont//创建一种新的逻辑字体(34, 0, 0, 0, 500, 0, 0, 0,

GB2312_CHARSET,

OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,

DEFAULT_QUALITY,

DEFAULT_PITCH & FF_DONTCARE,

"黑体");

hDC = BeginPaint(hwnd, &ps); //得到设备环境句柄

GetClientRect(hwnd, &rect); //得到需要绘制的客户区

holdFont = (HFONT)SelectObject(hDC, hnewFont); //选择新的字体

GetTextMetrics(hDC, &tm);

SetTextColor(hDC, RGB(255, 255, 255)); //设置文本颜色

//SetBkColor(hDC,RGB(0,0,0)); //设置背景颜色

Y = tm.tmExternalLeading + 10; //设置输出字符的Y坐标

for (i = 0; i

{

SetTextColor(hDC, RGB(0, 0, 0)); //设置字体的颜色为黑色

X = X + tm.tmAveCharWidth * 2; //设置输出字符的X坐标

TextOut(hDC, X, Y, &lpsz_1[i], 1);//输出从第0个到第nChar-1个字符}

SetTextColor(hDC, RGB(255, 0, 0));//设置字体的颜色为红色

X = X + tm.tmAveCharWidth * 2; //设置输出字符的X,Y坐标

Y = tm.tmExternalLeading; //提高10个像素

//hF = CreateFont(hDC,40,0); //创建字体

//SelectObject(hDC,hF); //选入字体

SetTextColor(hDC, RGB(255, 0, 0)); //设置字体的颜色为黑色TextOut(hDC, X, Y, &lpsz_1[nChar], 1);//输出第nChar个字符

Y = tm.tmExternalLeading + 10;

for (i = nChar + 1; i

{

SetTextColor(hDC, RGB(0, 0, 0)); //设置字体的颜色为黑色X = X + tm.tmAveCharWidth * 2; //设置输出字符的X坐标

TextOut(hDC, X, Y, &lpsz_1[i], 1); //输出后面的字符

}

if (nChar == nCharlen) //当输出到最后的一个字符时

{

bRight = FALSE; //改变红色字移动的方向为向左

bLeft = TRUE;

}

else if (nChar == 0) //当输出到第一个字时

{

bRight = TRUE; //改变红色字移动的方向为向右

bLeft = FALSE;

}

if (bRight == TRUE) nChar++;

else nChar--;

/*GetTextExtentPoint32(hDC,pstring,12,&size);

Xchar=(rect.right-rect.left)/2-size.cx/2;

Ychar=(rect.bottom-rect.top)/2-size.cy/2;

TextOut(hdc,Xchar,Ychar,pstring,12);*/

SelectObject(hDC, holdFont); //保存原来的字体格式

X = 0;

Y = 100; //设置输出字符的Y坐标

for (i = 0; i<26; i++)

{

if (i % 2 == 0)

{

hnewFont = CreateFont( //创建自定义字体

34, //字体的高度

0, //由系统根据高宽比选取字体最佳宽度值

0, //文本的倾斜度为0,表示水平

0, //字体的倾斜度为0

500, //字体的粗度,FW_HEAVY为最粗

0, //非斜体字

0, //无下划线

0, //无删除线

ANSI_CHARSET, //表示所用的字符集为ANSI_CHARSET

OUT_DEFAULT_PRECIS, //输出精度为缺省精度

CLIP_DEFAULT_PRECIS, //剪裁精度为缺省精度

DEFAULT_QUALITY, //输出质量为缺省值

DEFAULT_PITCH& FF_DONTCARE,//字间距和字体系列使用缺省值

"粗体字"); //字体名称

SelectObject(hDC, hnewFont);//将自定义字体选入设备环境

SetTextColor(hDC, RGB(0,0,0)); //设置文本颜色

X = X + 50; //设置输出字符的X坐标

TextOut(hDC, X, Y, &lpsz_2[i], 1);//输出从第0个到第nChar-1个字符}

else

{

hnewFont = CreateFont( //创建自定义字体

34, //字体的高度

0, //由系统根据高宽比选取字体最佳宽度值

0, //文本的倾斜度为0,表示水平

0, //字体的倾斜度为0

500, //字体的粗度,FW_HEAVY为最粗

1, //非斜体字

0, //无下划线

0, //无删除线

ANSI_CHARSET, //表示所用的字符集为ANSI_CHARSET

OUT_DEFAULT_PRECIS, //输出精度为缺省精度

CLIP_DEFAULT_PRECIS, //剪裁精度为缺省精度

DEFAULT_QUALITY, //输出质量为缺省值

DEFAULT_PITCH& FF_DONTCARE,//字间距和字体系列使用缺省值

"粗体字"); //字体名称

SelectObject(hDC, hnewFont);//将自定义字体选入设备环境

SetTextColor(hDC, RGB(0, 0, 255)); //设置文本颜色

X = X + 50; //设置输出字符的X坐标

TextOut(hDC, X, Y, &lpsz_2[i], 1);//输出从第0个到第nChar-1个字符}

}

DeleteObject(hnewFont); //删除新的字体格式

EndPaint(hwnd, &ps); //结束绘制

Sleep(100);

InvalidateRect(hwnd, &rect, 1);

case WM_DESTROY: //退出消息

PostQuitMessage(0); return 0;

}

return DefWindowProc(hwnd, message, wParam, lParam);

}

BOOL InitWindowsClass(HINSTANCE hInstance) //定义窗口类

{

WNDCLASS WndClass;

WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);

WndClass.hIcon = LoadIcon(NULL, "END");

WndClass.hInstance = hInstance;

WndClass.lpfnWndProc = WndProc;

WndClass.lpszClassName = "WinFill";

WndClass.lpszMenuName = NULL;

WndClass.style = CS_HREDRAW | CS_VREDRAW;

return RegisterClass(&WndClass);

}

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow)//初始化窗口

{

HWND hWnd;

hWnd = CreateWindow("WinFill", //生成窗口

"填充示例程序",

WS_OVERLAPPEDWINDOW,

20,

20,

950,

690,

NULL,

NULL,

hInstance,

NULL);

if (!hWnd) return FALSE;

ShowWindow(hWnd, nCmdShow); //显示窗口

UpdateWindow(hWnd);

}

截图:

2)编写一个程序,在窗口中显示“VC中显示字体与背景”,字体颜色为红色,背景色为黄色,字体为宋体,字高40。

源代码:

#include

#include

#includey

long WINAPI WndProc(

HWND hWnd,

UINT iMessage,

UINT wParam,

LONG lParam

);

BOOL InitWindowsClass(HINSTANCE hInstance);

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);

//主函数

int WINAPI WinMain(

HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

MSG Message;

if (!InitWindowsClass(hInstance)) return FALSE;

if (!InitWindows(hInstance, nCmdShow))return FALSE;

while (GetMessage(&Message, 0, 0, 0))//消息循环

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

return Message.wParam;

}

//消息处理函数

LRESULT CALLBACK WndProc(HWND hwnd, UINT message,

WPARAM wParam, LPARAM lParam)

{

HDC hdc; //设备句柄

PAINTSTRUCT ps; //画刷结构

int Xchar, Ychar;

SIZE size;

LPCTSTR pstring = { "VC中显示字体与背景" };

RECT rect; //无效矩形区

HFONT holdFont, hnewFont;

switch (message) //消息处理函数

{

case WM_CREATE:

return 0; //窗口创建

case WM_PAINT: //绘制消息

hnewFont = CreateFont//创建一种新的逻辑字体(40, 0, 0, 0, 500, 0, 0, 0,

GB2312_CHARSET,

OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,

DEFAULT_QUALITY,

DEFAULT_PITCH & FF_DONTCARE,

"宋体");

hdc = BeginPaint(hwnd, &ps); //得到设备环境句柄

GetClientRect(hwnd, &rect); //得到需要绘制的客户区

holdFont = (HFONT)SelectObject(hdc, hnewFont); //选择新的字体

SetTextColor(hdc, RGB(255, 0, 0)); //设置文本颜色

SetBkColor(hdc, RGB(255, 255, 0)); //设置背景颜色

GetTextExtentPoint32(hdc, pstring, 12, &size);

Xchar = (rect.right - rect.left) / 2 - size.cx / 2;

Ychar = (rect.bottom - rect.top) / 2 - size.cy / 2;

TextOut(hdc, Xchar, Ychar, pstring, 12);

SelectObject(hdc, holdFont); //保存原来的字体格式

DeleteObject(hnewFont); //删除新的字体格式

EndPaint(hwnd, &ps); //结束绘制

return 0;

case WM_DESTROY: //退出消息

PostQuitMessage(0);

return 0;

default:

return DefWindowProc(hwnd, message, wParam, lParam);

}

return 0;

}

BOOL InitWindowsClass(HINSTANCE hInstance) //定义窗口类

{

WNDCLASS WndClass;

WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);

WndClass.hIcon = LoadIcon(NULL, "END");

WndClass.hInstance = hInstance;

WndClass.lpfnWndProc = WndProc;

WndClass.lpszClassName = "WinFill";

WndClass.lpszMenuName = NULL;

WndClass.style = CS_HREDRAW | CS_VREDRAW;

return RegisterClass(&WndClass);

}

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow)//初始化窗口

{

HWND hWnd;

hWnd = CreateWindow("WinFill", //生成窗口

"填充示例程序",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

0,

CW_USEDEFAULT,

0,

NULL,

NULL,

hInstance,

NULL);

if (!hWnd) return FALSE;

ShowWindow(hWnd, nCmdShow); //显示窗口

UpdateWindow(hWnd);

return TRUE;

}

截图:

3、主要仪器设备及药品

Windows 2000+VC 6.0+MSDN

实验五键盘消息的响应实验

(验证性实验2学时)

1、目的要求:

理解Windows程序响应键盘操作的原理,熟悉键盘消息的响应编程。

2、实验内容:(选做1个)

1)设计一个窗口,在该窗口中练习键盘的响应,要求如下:单击键盘上的向上箭头时,窗口中显示“You had hitted the up key”;单击键时,窗口中显示“You had hitted the SHIFT key”;单击键时,窗口中显示“You had hitted the CTRL key”;单击键时,窗口中显示“You had hitted the CTRL A key”;单击键时,窗口中显示“You had hitted the SHIFT B key”。

源代码:

#include

#include

#include

long WINAPI WndProc(

HWND hWnd,

UINT iMessage,

UINT wParam,

LONG lParam

);

BOOL InitWindowsClass(HINSTANCE hInstance);

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);

//主函数

int WINAPI WinMain(

HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

MSG Message;

if (!InitWindowsClass(hInstance)) return FALSE;

if (!InitWindows(hInstance, nCmdShow))return FALSE;

while (GetMessage(&Message, 0, 0, 0))//消息循环

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

return Message.wParam;

}

//消息处理函数

long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam) {

HDC hDC; //定义设备环境句柄.

PAINTSTRUCT ps; //定义包含绘图信息的结构体变量

HPEN hPen; //定义画笔句柄。

HBRUSH hBrush; //定义画刷句柄

//以下定义输出的字符串。

static char cUp[] = "You had hitted the UP key";

static char cCtrl[] = "You had hitted the Ctrl key";

static char cShift[] = "You had hitted the SHIFT key";

static char cCtrl_A[] = "You had hitted the CTRL A key";

static char cShift_B[] = "You had hitted the SHIFT B key";

//下面定义并初始化按键标志变量。

static BOOL nUpKeyDown = FALSE,

nShiftKeyDown = FALSE,

nCtrlKeyDown = FALSE,

nCtrlAKeyDown = FALSE,

nShiftBKeyDown = FALSE;

switch (iMessage)

{

case WM_KEYDOWN:

{ switch (wParam)

{

case VK_UP: //当按上箭头键时,变量置为真。

nUpKeyDown = TRUE; break;

case VK_SHIFT: //当按shift键时,变量置为真。

nShiftKeyDown = TRUE; break;

case VK_CONTROL: //当按control键时,变量置为真

nCtrlKeyDown = TRUE; break;

default: break;

}

}

break;

case WM_KEYUP:

InvalidateRect(hWnd, NULL, FALSE); break;

case WM_CHAR:

if (wParam == (65 & VK_CONTROL))

{

if (nCtrlKeyDown == TRUE)

{

nCtrlAKeyDown = TRUE; nCtrlKeyDown = FALSE;

}

}

else if (wParam == 98 || wParam == 66) //当按下b键时

{

if (nShiftKeyDown == TRUE) //检查shift键是否处于按下状态。

{

nShiftBKeyDown = TRUE; //当SHIFT键按下时,变量置为真

nShiftKeyDown = FALSE;

}

}

break;

case WM_PAINT: //处理绘图消息.

hDC = BeginPaint(hWnd, &ps);

hBrush = (HBRUSH)GetStockObject(WHITE_BRUSH); //创建白画刷。

hPen = (HPEN)GetStockObject(WHITE_PEN); //创建白画笔。

SelectObject(hDC, hPen); //选入白画刷

SelectObject(hDC, hBrush); //选入白画笔

SetTextColor(hDC, RGB(255, 0, 0)); //设置字体颜色为红色。

//输出信息。

if (nUpKeyDown == TRUE)

{

Rectangle(hDC, 0, 0, 300, 200);

TextOut(hDC, 0, 0, cUp, strlen(cUp));

nUpKeyDown = FALSE;

}

else if (nCtrlAKeyDown == TRUE)

{

Rectangle(hDC, 0, 0, 300, 200);

TextOut(hDC, 0, 100, cCtrl_A, strlen(cCtrl_A));

nCtrlAKeyDown = FALSE;

nCtrlKeyDown = FALSE;

电子技能实训教学大纲

电子技能实训教学大纲 Final approval draft on November 22, 2020

电子技能实训教学大纲一、实训课程概况: 电子技能实训教学是以学生自己动手,掌握电子技术基础理论、一定操作技能和制作几种实际产品为特色的实训项目。它是电子产品生产基本技能和工艺知识入门的向导,又是创新实践的开始和创新精神的启蒙。电子技能实训教学体系的研究是为了在电子实训教学中使机电、电子专业的学生尽快掌握电子产品的生产工艺的理论,掌握技能、积累经验和提高能力共同发展。为机电、电子专业的学生毕业后尽快适应岗位的需要,改革现行的电子实训教学内容和教学方式,高起点的培养电子产品的设计制造人才,以满足制造业发展对人才的需要。 二、实训课程安排: 本课程分九个实训单元进行。 (一) 电子基本技能实训 (二)电子仪器与线路分析实训 (三)EDA实训 (四)电子综合技能(信号发生器制作)实训 (五)电子综合技能(数字电子钟制作)实训 (六)计算机仿真实训 (七)家用电器维修实训 《电子基本技能实训》教学大纲 实训名称:电子基本技能实训实训课代码: 实训周数:一周实训学分:1 适用专业:工科类修电子技术课程所有专业,适用于本科 一、实训教学的性质和任务 电子基本技能实训是电子、电气类职业技术教育的重要环节,是培养学生实践技能的重要途径之一。本课程从电子元器件识别、检测,通过万用表、电子测量仪器的使用,焊接元器件装配技术,手工设计印制电路板,使学生得到一个基本的实践技能训练机会,为以后的实验、实训课程打下基础。 主要目的和任务:

(一)、掌握电子技术应用过程中的一些基本技能。 (二)、巩固、扩大已获得的理论知识。 (三)、了解电子设备制作、装调的全过程,掌握查找及排除电子电路故障的常用方法。 (四)、培养学生综合运用所学的理论知识和基本技能的能力,尤其是培养学生独立分析和解决问题的能力。 二、实训教学的主要内容和基本要求 1、电子基本技能实训教学的主要内容及知识、能力、素质的基本要求: (一)、熟练掌握指针式万用表和数字式万用表的使用方法及注意事项。 (二)、熟练识别各种电子元器件;了解各种元器件的作用、分类、性能及其参数。(三)、用万用表对各种元器件进行测试和判别。 (四)、会查阅电子元器件相关手册。 (五)、掌握各种仪器仪表的操作步骤;了解各种仪器仪表的使用注意事项 (六)、掌握各种焊接工具的使用及维护。 (七)、熟悉电子产品的安装及手工焊接技术,能独立完成电子元器件的拆、装、焊。(八)、能独立完成简单电子产品的安装与焊接。 (九)、熟悉电路板的设计原则;了解印制电路板的制作过程。 (十)、掌握简单电子产品(LC振荡器)原理图的绘制。 2、电子基本技能实训教学方法手段的基本要求: 将该实训分成教学模块,由老师逐块讲解示范,再由学生动手实际操作,老师布置实训任务,学生在规定时间内完成,教师随时指导检查,最终使学生熟练掌握该实训的全部内容,并写出实训总结报告。 3、电子基本技能实训教学考核方法的基本要求: 在规定时间内完成实训任务,并且准确设计合理的,成绩优秀(10分); 在规定时间内完成实训任务,但有错误能及时发现并改正者,成绩良好(8分); 在规定时间内完成实训任务,但错误未能改正者,成绩及格(6分); 未能在规定时间内完成实训任务者,成绩不及格(4分)。 各次考核成绩最终汇总量化,同出勤、课堂表现成绩一同计入总成绩。 出勤:10分课堂考核:50分(10分/次*5次) 课堂表现:10分实训总结报告:30分

Windows程序设计题(含简答题答案)

Windows 程序设计》模拟题 单项选择题 1. 在 VC++ 中,项目文件的扩展名是( B )。 A ) exe B)dsp C ) dsw D ) cpp 2. 在 MFC 中,利用 ClassWizard 不能( D )。 A )建立新类 B )进行消息映射 C )增加类的成员变量 D )插入资源 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送( 3. C )消 息。 4. 5. A ) WM_CHAR B ) WM_HSCROLL C ) W M_VSC ROLL 更新菜单状态的消息是( C A ) WM_COMMAND )。 C ) UPDATE_COMMAND_UI 对于消息队列描述正确的是( A )在Windows 中只有一个消息系统, 据结构,用于临时存储消息。 D ) WM_CHANG E B ) UPDATE D) INVALIDATE 即系统消息队列。 消息队列是一个系统定义的数 B )系统可从消息队列将信息直接发给窗口。 另外,每个正在 Windows 下运行的应用程 序都有自己的消息队列。 C )系统消息队列中的每个消息最终都要被 USER 模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D )以上都正确 6. 在 MFC 中,所有的控件都是( B )类的派生类,都可以作为一个特殊的窗口来处理。 CView B ) CWnd C) 7. 使用 CWindow C) D ) CDialog GetDC () 获取的设备上下文在退出时,必须调用( A )释放设备上下文。 ReleaseDC() B ) delete() DeleteDC () D ) Detach () 8. 希望菜单无效,应该用 CCmdUI 类的( A )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 9.希望菜单前出现一个“V”,应该用 CCmdUI 类的(C )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 10.下面(A )不是MFC 设备环境类CDC 类的派生类。 A ) GDI B ) CPaintDC C) CClientDC D) CWindowDC 11.在MFC 中,所有的文档类都派生于( C ),所有的视图类都派生于( A )。 A) CView B) CWindow C) CDocument D) CFormView

版式设计 全套教案

课程:版式设计 系院:美术系 教师姓名: 授课班级:09级5班 时间:2010.11—2010.12

《版式设计Ⅰ》课程教学大纲 一、课程编码及课程名称 课程编码:301101612 课程名称:《版式设计Ⅰ》英文名称:Format designⅠ 二、学时、学分及适用专业 总学时数:64学时学分:3分适用专业:艺术设计专业(本科) 三、课程教学目标 版式设计Ⅰ课程是艺术设计专业的一门重要的课程,它的主要任务通过学习使学生掌握文字的韵律美感及书写规律;培养学生和训练学生快速设计和书写能力。使学生掌握设计的视觉要素、构成要素,版式设计表现内容与形式关系、设计要素及构成规律与方法,以及各种应用设计的形式特点,使学生能够进行具有感染力的版式设计,从而使作品的内容更清晰、更有条理的传达给读者。 四、课程的性质和任务: 本课程是艺术设计专业必修专业课。通过本课程的学习,使学生了解字体设计基本概念和字体的基本功能;了解字体的发展简史及字体的类型,掌握字体绘写的基本方法与要求及字体设计的方法与技巧。培养学生的专业素质,使学生充分认识字体设计在商业设计中的重要性,和字体设计未来发展的趋势。 五、课程教学的基本要求: 本课程应该结合实践知识,分阶段、针对性的进行版式设计的讲解,使学生从理论到实践,逐渐认识、掌握字体设计案例。因此在课程教学的方法上,授课教师应该多准备实例素材,通过幻灯、多媒体向学生展示讲解,并通过校外课堂示范教学,使学生更直观的学习版式设计步骤。从工艺与制作能力两个方面引导学生,从而真正达到提高学生应用能力的目的。 六、课程教学内容: 第一章文字的概述(共11学时) (一)本章教学基本要求 充分了文字的发展概况 (二)教学内容:1.1 由图画到字体的演变 1.2 东方文字的发展历史 1.3 西方文字的发展历史 教学重点:文字的演变 教学难点:中西方文字的演变 (三)小结: 通过对本章的学习能了解字体发展概况。 第二章文字创意的基本方法(共13学时) (一)本章教学基本要求 通过本章学习使学生了解汉字的基本造型结构,汉字书写的一般规律,掌握字体设计笔画结构变化的基本方法。 (二)教学内容:2.1 文字设计的目的和价值 2.2 文字创意设计的原则 2.3 中西文字的表征 2.4 文字创意设计的方法 教学重点:汉字的基本造型结构

电工电子技术课程教学大纲

电工电子技术课程教学大纲

一、课程的地位、目的和任务 本课程地位:掌握实验室常用电工电子仪器的使用方法;掌握电子技术必要的基本理论、基本知识和基本技能;了解电子技术的应用和发展概况;为学习后续课程以及从事与本专业有关的工程技术等工作打下一定的基础。 本课程目的: 本课程包含两大方面的内容,即电工技术与电子技术,目的是培养学生掌握电工技木和电子技术的基础理论知识和实验技能,并在实验实月训基础上,能根据机电设备的运行要求,完成继电器-接触器控制电路的设计与调试。 本课程任务: 1.掌握电工技术领域中基本理论、基本知识和基本分析方法;初步掌握一般电路和电子电路的分析方法。 2.了解常用电子器件的作用和功能,并能正确使用 3.受到必要的实验技能训练,能使用最常用的电工电子仪表,能独立完成不太复杂的电工电子实验,养成严谨的科学作风。 4.了解电工电子技术领域中的新理论、新技术、新知识。 二、本课程与其它课程的联系 前修课程:高等数学、普通物理。一 后修课程:单片机原理与接口技术、机电传动与控制等。 三、教学内容及要求 教学要求: 第一章电路的基本概念和基本定律

第二章电路的稳态分析 教学要求: 通过支路电流法、结点电压法、叠加定理、戴维南 定理、诺顿定理的学习;深入理解正弦电压与电流;正 弦量的相量表示法;电阻、电容、电感、兀件的交流电 路;电阻、电感与电容串联的交流电路;复杂交流电路 的分析与计算;功率因数的提高;三相电源;负载星形 联接的三相电路;负载三角形联接的三相电路;三相电 路的功率。 一 重点:戴维南定理;正弦量的相量表示法;电阻、 电感与电容串联的交流电路;三相电源;三相电路的功 率。、 、亠、 亠 难点:电阻、电感与电容串联的交流电路;复杂交 流电路的分析与计算;负载星形联接的三相电路。 教学内容: 模型通过电路的基本概念及和电的作用与號部分姆路 律;电源有载工作、开路与短路;基尔霍夫定律;电路 律;电源有载工作、开路与短路;基尔霍夫定律; 中电位的概念及计算等 重点:欧姆定律;基尔霍夫定律;电路中电位的概 念及计算 难点:电路的基本定律、电路的基本分析方法。 教学内容: 概念 第一节电路的基本 (四) 路元件 电路的组成及其作用 电路模型 电路的基本物理量及其参考方向 电气设备的额定值及电路的工作状态 第二节基本理想电 (四) (五 ) 电阻元件 电容元件 电感兀件 电压源 电流源 第三节基尔霍夫定 基尔霍夫电流定律

《电工电子技术》教学大纲

《电工与电子技术》教学大纲 课程名称:电工电子技术课程类别:职业基础课 学时: 88 学分: 4.5 适用专业:机械类所有专业 先修课程:工程数学(含线代) 一、课程教学目标 《电工电子技术》是一门具有较强实践性的职业基础课程。通过本课程的学习,学生可以获得电工和电子技术的基本理论和基本技能。为学习后续课程和专业课打好基础,也为今后从事工程技术工作和科学研究奠定一定的理论基础。 课程的任务在于培养学生的科学思维能力,树立理论联系实际的工程观点,提高学生分析问题和解决问题的能力。 二、教学内容及基本要求 1、电路 (1)了解电路的作用和组成,电路的三种状态。 (2)了解电路主要物理量的定义。 (3)掌握电流、电压的参考方向。 2、电路的基本元件 (1)了解电阻、电感和电容元件的特性。 (2)掌握电源的两种模型及外特性。 3、电路的基本定律 (1)了解欧姆定律和基尔霍夫定律的主要内容。 (2)掌握用欧姆定律和基尔霍夫定律分析电路的方法。 4、电路的分析方法 (1)掌握用支路电流法,叠加原理,戴维南定理分析电路。 (2)学会运用电压源、电流源的互换方法。 5、正弦交流电路基础 (1)掌握正弦量的相量表示法。 (2)了解正弦量的三要素。 (3)掌握分析单一参数元件的交流电路。 6、正弦交流电路的分析方法 (1)了解谐振的基本概念以及RLC串联电路与并联电路的谐振条件和特点。 (2)掌握RLC串联电路中电压与电流的关系及功率的计算。 (3)掌握阻抗串、并联电路的分析、计算方法,提高功率因数的方法。 7、三相正弦交流电路 (1)了解了解三相交流电的产生。 (2)掌握三相交流电的表示方法。 (3)掌握负载两种连接形式的相、线电压,相、线电流的关系。

Windows程序设计题(含简答题答案)

《Windows程序设计》模拟题 一.单项选择题 1、在VC++中,项目文件得扩展名就是(B)。 A)exe????B)dsp C)dsw???D)cpp 2、在MFC中,利用ClassWizard不能(D)。 A)建立新类??B)进行消息映射 C)增加类得成员变量?D)插入资源 3、当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR??B)WM_HSCROLL C)W M_VSCROLL???D)WM_CHANGE 4、更新菜单状态得消息就是(C )。 A)WM_MANDB)UPDATE C)UPDATE_MAND_UI D)INVALIDATE 5、对于消息队列描述正确得就是(D) A)在Windows中只有一个消息系统,即系统消息队列。消息队列就是一个系统定义得 数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行得应用程序都有自己得消息队列。 C)系统消息队列中得每个消息最终都要被USER模块传送到应用程序得消息队列中去。 应用程序得消息对列中存储了程序得所有窗口得全部消息. D)以上都正确 6、在MFC中,所有得控件都就是(B)类得派生类,都可以作为一个特殊得窗口来处理。 A)CView??B)CWnd C)C Window???D)CDialog 7、使用GetDC()获取得设备上下文在退出时,必须调用(A)释放设备上下文. A)ReleaseDC()???B)delete() C)D eleteDC()???D)Detach() 8、希望菜单无效,应该用CCmdUI类得(A )成员函数。 ???B)SetRadio A)Enable?? ? C)SetCheck???D)SetText 9、希望菜单前出现一个“√",应该用CCmdUI类得(C)成员函数. A)Enable ???B)SetRadio C)SetCheck??D)SetText 10、下面(A)不就是MFC设备环境类CDC类得派生类. A)GDI ????B)CPaintDC C)CClientDC ??D)CWindowDC 11、在MFC中,所有得文档类都派生于(C),所有得视图类都派生于(A )。 A)CView B)CWindowC)CDocumentD)CFormView 12、采用C++进行绘图时,(B)用于指定图形得填充样式,(A)用于指定图形得边框样式.

《文字与版式设计》课程教学大纲与教案

《文字与版式》课程教学大纲 Writing and format design 课程学时:70学时,学分:4 一、本课程教学的目的与原则 通过本课程教学,明确版式设计原理在设计活动中至关重要的作用。本课程注重设计前沿理论的研究和开发,是对学生艺术潜质、思维方式、创造能力等综合素质的全面开发和培养,帮助学生掌握科学的思维方法、搭建完备的设计理念构架、构建合理的设计知识体系,自觉地运用版式设计原理进行艺术设计。同时,本课程能有效地激发学生们的设计潜能,在艺术设计学习的过程中,不断地调整自己,从认识自我到超越自我,成为时代需求的艺术设计人才。 课程将积极组织并参与设计实践以及各种设计、创意大赛,使理论与实践结合,通过严格的基础训练和设计实践,使学生建立和掌握版式设计的概念和方法,并自如运用于艺术设计活动的各个领域。 二、学习方法指导 1、以案例分析为主,通过对优秀版式设计作品剖析和模仿,引导学生建立版式设计的整体概念。 2、强调研究性学习的方法,确定专题性课题设计及组织讨论,从而引导学生在实战训练中熟练掌握设计原则。 三、本课程的重点与难点 本课程的重点是在案例教学中,培养学生整体把握版式设计中文字、图形、色彩三要素的构成关系,通过课题设计理解黑、白、灰整体分区概念;点、线、面在版式设计中的运用;各种设计原则及表现。 难点是把握具体设计内容与形式表现之间的关系;文字与文字、文字与图形之间整体与局部的构成关系。 四、本课程教学基本内容 第一章版式设计概念 [知识点提示] 版式设计概念 [重、难点提示] 建立对版式构成元素进行整体设计的概念 第一节版式设计概念导入 第二节传统中国书籍的版式 1、传统中国书籍的版面术语名称 2、传统中国书籍的版式设计特征 第二章版式设计原则 [知识点提示] 版式设计整体概念理解 [重、难点提示] 建立对版式整体设计的意识 第一节整体性原则 1、主次分明 2、分类编排 3、设计元素处理 第一节简洁性原则 第三章版式设计原理 [知识点提示] 设计原理 [重、难点提示] 黑、白、灰与点、线、面的整体布局关系,协调性与空间 第一节分类 1、同类合并原则

《模拟电子技术实验》教学大纲

《模拟电子技术实验》教学大纲 课程中文名称(课程英文名称):模拟电子技术实验/Experiments of analog electron technology 一、课程编码:1021004006 二、课程目标和基本要求: 1、模拟电子技术实验是《模拟电子技术基础》课程的主要实践环节,是深化理论知识,培养实验技能,提高学生运用理论分析、解决实际问题的能力的重要教学和学习过程。 2、通过实验使学生充分认识到电子技术研究和发展的重要位置,以及它在物理学科应用中的重要意义。通过实验引导、启发学生解放思想、更新观念、摆正理论与实践的关系。 三、课程总学时: 30 学时(严格按教学计划时数)[理论: 0 学时;实验: 30 学时] 四、课程总学分: 1 学分(严格按教学计划学分) 五、适用专业和年级:物理教育学;2006级。 六、实验项目汇总表: 八、大纲内容:

实验一常用电子仪器的使用 [实验目的和要求] 1、学习电子电路实验中常用的电子仪器的主要技术指标、性能及正确使用方法。 2、初步掌握用双踪示波器观察正弦信号波形和读取波形参数的方法。 [实验内容] 1、示波器的检查与校准; 2、用示波器观察和测量交流电压及周期; 3、用示波器测量直流电压; 4、用示波器测量相位; 5、毫伏表与数字万用表交流电压测量的比较。 [主要实验仪器与器材] 1、SS-7802示波器一台; 2、EM1642信号发生器一台; 3、DF1701直流电源一台; 4、DF2170毫伏表一台; 5、UT56数字万用表一只。 实验二、晶体管元件的认识和测量 [实验目的和要求] 1、掌握用万用表鉴别晶体管的性能; 2、了解晶体管特性图示仪的简单原理及使用方法,用晶体管特性图示仪测量特性曲线和参数; 3、绘制小功率晶体管的特性曲线,并运用特性曲线求参数。 [实验内容] 1、用数字万用表鉴别晶体三极管的性能; 2、XJ4810晶体管特性图示仪测量晶体管的特性曲线和参数。 [主要实验仪器与器材] 1、XJ4810晶体管特性图示仪; 2、UT56数字万用表; 3、晶体三极管(3A X31、901 4、9015)、稳压管。

版式设计教学大纲

《版式设计》课程教学大纲 一、本课程教学的目的与原则 通过本课程教学,明确版式设计原理在设计活动中至关重要的作用。本课程注重设计前沿理论的研究和开发,是对学生艺术潜质、思维方式、创造能力等综合素质的全面开发和培养,帮助学生掌握科学的思维方法、搭建完备的设计理念构架、构建合理的设计知识体系,自觉地运用版式设计原理进行艺术设计。同时,本课程能有效地激发学生们的设计潜能,在艺术设计学习的过程中,不断地调整自己,从认识自我到超越自我,成为时代需求的艺术设计人才。 本课程将积极组织并参与设计实践以及各种设计、创意大赛,使理论与实践结合,通过严格的基础训练和设计实践,使学生建立和掌握版式设计的概念和方法,并自如运用于艺术设计活动的各个领域。 二、学习方法指导 1、以案例分析为主,通过对优秀版式设计作品剖析和模仿,引导学生建立版式设计的整体概念。 2、强调研究性学习的方法,确定专题性课题设计及组织讨论,从而引导学生在实战训练中熟练掌握设计原则。 三、本课程的重点与难点 本课程的重点是在案例教学中,培养学生整体把握版式设计中文字、图形、色彩三要素的构成关系,通过课题设计理解黑、白、灰整体分区概念;点、线、面在版式设计中的运用;各种设计原则及表现。 难点是把握具体设计内容与形式表现之间的关系;文字与文字、文字与图形之间整体与局部的构成关系。 四、本课程教学基本内容 第一章版式设计概念 [知识点提示] 版式设计概念 [重、难点提示] 建立对版式构成元素进行整体设计的概念 第一节版式设计概念导入 第二节传统中国书籍的版式 1、传统中国书籍的版面术语名称 2、传统中国书籍的版式设计特征

第二章版式设计原则 [知识点提示] 版式设计整体概念理解 [重、难点提示] 建立对版式整体设计的意识 第一节整体性原则 1、主次分明 2、分类编排 3、设计元素处理 第一节简洁性原则 第三章版式设计原理 [知识点提示] 设计原理 [重、难点提示] 黑、白、灰与点、线、面的整体布局关系,协调性与空间第一节分类 1、同类合并原则 2、确定中心内容 3、邻近原则 第二节分区 1、黑、白、灰关系 2、面的构成 3、空白空间 第三节分栏 1、网格构成 2、版式设计中的线 3、重复原则 阶段性小结与讲评 第四章文字的编排设计 [知识点提示] 文字与文字之间的编排 [重、难点提示] 标题、副标题与正文在编排中的关系、文字易读性 第一节字体 1、宋体 2、黑体 3、文艺复兴字体 4、巴洛克字体

《电子技术实践》课程教学大纲

《电子技术实践》课程教学大纲 一、课程基本情况 适用专业:高职高专电子、电信、电气、自动化 修课方式:必修 总学时数:40 考核方式:考查 教材:《电子技术实践与训练》廖先芸(高等教育出版社) 教学参考书: 叶致诚《电子技术基础实验》高等教育出版社 1995 孙梅生《电子技术课程设计》高等教育出版社 1995 陈有卿《新颖电子制作138例》人民邮电出版社 1998 钟长华《电子技术选修实验》清华大学出版社 1995 陈大钦《电子技术选修实验》(第2版) 高等教育出版社 2002 卢庆林《数字电子技术基础实验与综合训练》高等教育出版社 2002 二、课程的性质、任务和目的 本课程是电气、电子类专业的技术实践课之一,是实现理论与实践结合、培养学生智力技能的重要媒介。本课程的任务是:进行比较系统的电子技术实验实践能力和技能的培养,使学生具有较强的电子技术工程应用能力。 通过本课程的学习,在基本能力和基本技能方面应达到以下要求: 1.实验技能方面 (1)正确和熟练使用以下常用电子仪器仪表; 电压表、电流表、万用表 示波器、信号发生器、直流稳压电源 (2)掌握以下基本电量的测量和测试方法: 电压和电流的有效值和峰值 正弦交流电压信号的峰值、频率 多谐振荡信号的峰值、频率和占空比 2.在工程应用能力方面 (1)对基本和常用元、器件的识别和选择应用:

能熟练地识别色环电阻的阻值、精度、功率; 能熟练地根据标识判别电容的容量、极性、耐压; 能用万用表判别二极管、三极管的好坏、极性等; 能根据管脚图正确应用线性集成电路、常用数字集成电路; 能正确使用逻辑功能相同的TTL电路和CMOS电路。 (2)对基本电路的结构和应用: 熟悉三极管组成的基本放大电路结构,掌握静态工作点是调试方法、电压放大倍数、输入和输出电阻、频率特性的测试方法; 熟悉开关电路的结构,掌握开关状态的调试方法; 掌握普通及发光二极管的限流电阻、三极管基极电阻的计算和选择方法; 熟悉几种常用多谐振荡器的电路形式。 (3)查阅电子器件手册并根据技术要求选用合适元件的能力。 (4)借助辅助资料,读懂一般的电子线路原理图的能力。 (5)独立组装中、小电子系统的能力;分析、寻找和排除应用电路中常见故障的初步能力。 (6)独立写出有理论分析的、实事求是的、文理通顺的、字迹端正的实验报告。 三、课程的主要内容与学时分配 实验方法和技能 4 仪器及元器件基本知识2 电子电路的故障分析与排除2 验证性实验 8 基本放大电路 2 RC正弦波振荡电路2 三端集成稳压器 2 集成门电路特性2 应用性实验选题参考* 26 课题一电平指示电路2 课题二光控开关和报警电路2 课题三红外线光电开关电路2 课题四有线对讲机电路2

数字电子技术实验指导书

数字电子技术实验指导书 (韶关学院自动化专业用) 自动化系 2014年1月10日 实验室:信工405

数字电子技术实验必读本实验指导书是根据本科教学大纲安排的,共计14学时。第一个实验为基础性实验,第二和第七个实验为设计性实验,其余为综合性实验。本实验采取一人一组,实验以班级为单位统一安排。 1.学生在每次实验前应认真预习,用自己的语言简要的写明实验目的、实验原理,编写预习报告,了解实验内容、仪器性能、使用方法以及注意事项等,同时画好必要的记录表格,以备实验时作原始记录。教师要检查学生的预习情况,未预习者不得进行实验。 2.学生上实验课不得迟到,对迟到者,教师可酌情停止其实验。 3.非本次实验用的仪器设备,未经老师许可不得任意动用。 4.实验时应听从教师指导。实验线路应简洁合理,线路接好后应反复检查,确认无误时才接通电源。 5.数据记录 记录实验的原始数据,实验期间当场提交。拒绝抄袭。 6.实验结束时,不要立即拆线,应先对实验记录进行仔细查阅,看看有无遗漏和错误,再提请指导教师查阅同意,然后才能拆线。 7.实验结束后,须将导线、仪器设备等整理好,恢复原位,并将原始数据填入正式表格中,经指导教师签名后,才能离开实验室。

目录实验1 TTL基本逻辑门功能测试 实验2 组合逻辑电路的设计 实验3 译码器及其应用 实验4 数码管显示电路及应用 实验5 数据选择器及其应用 实验6 同步时序逻辑电路分析 实验7 计数器及其应用

实验1 TTL基本逻辑门功能测试 一、实验目的 1、熟悉数字电路试验箱各部分电路的基本功能和使用方法 2、熟悉TTL集成逻辑门电路实验芯片的外形和引脚排列 3、掌握实验芯片门电路的逻辑功能 二、实验设备及材料 数字逻辑电路实验箱,集成芯片74LS00(四2输入与非门)、74LS04(六反相器)、74LS08(四2输入与门)、74LS10(三3输入与非门)、74LS20(二4输入与非门)和导线若干。 三、实验原理 1、数字电路基本逻辑单元的工作原理 数字电路工作过程是数字信号,而数字信号是一种在时间和数量上不连续的信号。 (1)反映事物逻辑关系的变量称为逻辑变量,通常用“0”和“1”两个基本符号表示两个对立的离散状态,反映电路上的高电平和低电平,称为二值信息。(2)数字电路中的二极管有导通和截止两种对立工作状态。三极管有饱和、截止两种对立的工作状态。它们都工作在开、关状态,分别用“1”和“0”来表示导通和断开的情况。 (3)在数字电路中,以逻辑代数作为数学工具,采用逻辑分析和设计的方法来研究电路输入状态和输出状态之间的逻辑关系,而不必关心具体的大小。 2、TTL集成与非门电路的逻辑功能的测试 TTL集成与非门是数字电路中广泛使用的一种逻辑门。实验采用二4输入与非门74LS20芯片,其内部有2个互相独立的与非门,每个与非门有4个输入端和1个输出端。74LS20芯片引脚排列和逻辑符号如图2-1所示。

Windows程序设计题(含简答题标准答案)

《Windows程序设计》模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B)。 A)exe ????B)dsp C)d sw?????D)cpp 2.在MFC中,利用ClassWizard不能(D )。 A)建立新类?????B)进行消息映射 C)增加类的成员变量?D)插入资源 3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR ?B)WM_HSCROLL C)WM_VSCROLL???D)WM_CHANGE 4. 更新菜单状态的消息是(C)。 A)WM_COMMANDB)UPDATE C)UPDATE_COMMAND_UI D)INVALIDATE 5.对于消息队列描述正确的是( D ) A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程 序都有自己的消息队列。 C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6. 在MFC中,所有的控件都是(B )类的派生类,都可以作为一个特殊的窗口来处理。 ?B)CWnd A)CView ??? C)C Window ???D)CDialog 7.使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A)ReleaseDC()???B)delete() C)D eleteDC() ?D)Detach() 8. 希望菜单无效,应该用CCmdUI类的(A )成员函数。 A)Enable ???B)SetRadio C)S etCheck ??D)SetText 9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。 A)Enable??B)SetRadio C)SetCheck????D)SetText 10. 下面(A)不是MFC设备环境类CDC类的派生类。 A)GDI??????B)CPaintDC C)C ClientDC ???D)CWindowDC 11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A )。 A)CViewB)CWindowC)CDocument D)CFormView 12. 采用C++进行绘图时,(B )用于指定图形的填充样式,(A)用于指定图形的边框样式。 A)画笔B)画刷C)区域D)位图

《版式设计》课程教学大纲

《版式设计》课程教学大纲 课程编号:01081291 课程英文名称:Layout 适用专业:装潢艺术设计(本科) 课程类别:专业必修课学时及学分:64学时,4学分 先修课程:《造型基础I》、《造型基础II》、《文字设计I》、《标志设计》 一、基本目的 版式设计是装潢设计的重要课程,该课程以版面的视觉功能设计为前提,以版面设计的形式美法则训练为基本内容。主要学习版式设计的理论和表现手法,注重版式的创造性研究。我们的任务就是使学生理解版式设计在本专业中的重要性,充分掌握版式设计的设计程序和技巧,并加强学生对设计作品整体的控制和把握能力。 二、教学基本要求 教学要求就是要让学生熟悉和了解版式设计的手段和方法,在遵循形式美法则的前提下独立完成自身的设计和制作任务,充分运用各种版式形式,理解版式设计对设计作品的作用。 三、教学内容 1.版式设计的概念 2.版式设计的意义 3.版式设计的形式原则 ⑴分割与集合; ⑵对比与调和; ⑶对称与平衡; ⑷律动与生命; ⑸变化与统一; ⑹主从与秩序; ⑺整体与局部 4.版式设计中对于文字的处理 5.版式构成的造型要素 ⑴点;⑵线;⑶面 6.版式设计中对图形的处理 ⑴方形图形;⑵出血图形;⑶褪底;⑷特殊图式 7.版式设计的几种形式 ⑴全版式;⑵定位式;⑶重复式;⑷重叠式;⑸聚集式;⑹分散式;⑺引导式;⑻自由式四、各章内容的重点、难度、深度和广度 1.认识版式设计的意义,重视版式对设计作品的重要性,理清形式与创意的关系。 2.版式设计的形式原则,特别是对比与调和、变化与统一、整体与局部的关系。

3.版式设计中对于文字的处理,这是往往会被忽视的,要对文字的强烈的有视觉敏感。五、实验项目及实验要求 无 六、学时分配建议 七、指定教材及教学参考书 1.《版面构成》王汀编著广东人民出版社2001年 2.《平面广告版式创意技巧》曾希圣著陕西人民美术出版社1994年 3.《平面视觉传达设计》吴国欣编湖南美术出版社 八、学生成绩评定方法 创意占60%,制作占40% 大纲执笔人:郭玉川 大纲审订人:宁钢郭玉川 编写日期:2005.7

电子技术教学大纲

一、课程性质与任务 本课程是中等职业学校电类专业的一门基础课程。其任务是:使学生掌握电子信息类、电气电力类等专业必备的电子技术基础知识和基本技能,具备分析和解决生产生活中一般电子问题的能力,具备学习后续电类专业技能课程的能力;对学生进行职业意识培养和职业道德教育,提高学生的综合素质与职业能力,增强学生适应职业变化的能力,为学生职业生涯的发展奠定基础。 二、课程教学目标 使学生初步具备查阅电子元器件手册并合理选用元器件的能力;会使用常用电子仪器仪表;了解电子技术基本单元电路的组成、工作原理及典型应用;初步具备识读电路图、简单电路印制板和分析常见电子电路的能力;具备制作和调试常用电子电路及排除简单故障的能力;掌握电子技能实训,安全操作规范。 结合生产生活实际,了解电子技术的认知方法,培养学习兴趣,形成正确的学习方法,有一定的自主学习能力;通过参加电子实践活动,培养运用电子技术知识和工程应用方法解决生产生活中相关实际电子问题的能力;强化安全生产、节能环保和产品质量等职业意识,养成良好的工作方法、工作作风和职业道德。 三、教学内容结构 教学内容由基础模块和选学模块两部分组成。 1. 基础模块是各专业学生必修的基础性内容和应该达到的基本要求,教学时数为84学时。 2. 选学模块是适应不同专业需要,以及不同地域、学校的差异,满足学生个性发展的选学内容,选定后即为该专业的必修内容,教学时数不少于12学时。 3. 课程总学时数不少于96学时。 四、教学内容与要求 基础模块 第一部分模拟电子技术 教学单元教学内容教学要求与建议 二极管及其应用二极管的特性、结构与分类通过实验或演示,了解二极管的单向导电性; 了解二极管的结构、电路符号、引脚、伏安特性、主要参数,能在实践中合理使用二极管;了解硅稳压管、发光二极管、光电二极管、变容二极管等特殊二极管的外形特征、功能和实际应用; 能用万用表判别二极管的极性和质量优劣 整流电路及应用通过示波器观察整流电路输出电压的波形,了解整流电路的作用及工作原理; 能从实际电路图中识读整流电路,通过估算,会合理选用整流电路元件的参数; 通过查阅资料,能列举整流电路在电子技术领域的应用; 搭接由整流桥组成的应用电路,会使用整流桥 滤波电路的类型和应用能识读电容滤波、电感滤波、复式滤波电路图; 通过查阅资料,了解滤波电路的应用实例; 通过示波器观察滤波电路的输出电压波形,了解滤波电路的作用及其工作原理;

版式设计教学大纲1

《版式设计》教学大纲 一、课程说明 课程编号: 学分: 2 总学时:32 课程开设院(系):美术系 适用专业:环境艺术设计 前期课程:素描色彩构成基础设计概论环境实体写生手绘效果图表现技法工程制图与识图 AutoCAD基础与应用计算机效果图设计与制作室内设计原理空间创意设计 二、教学性质和任务 课程性质:本课程是环境艺术设计专业学生的一门选修课。 课程任务:版面设计是在对平面构成的形态、色彩、肌理、空间、动势等设计要素和构成要素认知及研究的基础上,对这些要素的组合规律、对它们表现的可能性及其与内容的关系进行全面的学习研究,为以后的环境艺术设计专业相关的版面设计奠定良好的基础。三、课程教学目标 (一)知识目标 1、理解版式设计的基本概念: 2、掌握版式设计的视觉元素及其特征; 3、掌握版式设计的关系构成要素。 (二)能力目标 1、能够进行环境艺术设计专业所需版面的设计 四、教学方法 理论讲授与实践相结合…… 五、考核方法 平时成绩加综合作业…… 六、理论教学内容和要求 第一章版式设计基础 教学要求: 通过本章节的学习,掌握版式设计的原则。 教学内容: 版式设计的基础知识 教学重点: 1、版式设计的原则和要求 2、办公空间设计原则

第二章版式设计的视觉元素 教学要求: 通过本章的学习,了解版式设计中文字的基本属性、标题与正文的编排处理原则、版心、页眉与页码的编排设计、文字的输出要求、版式中的图片、版面设计中的色彩与符号。 重点:版式设计的编排处理原则以及版式设计中的色彩与符号。 教学内容: 1、文字的基本属性; 2、标题与正文的编排处理原则; 3、版心、页眉与页码的编排设计; 4、文字的输出要求; 5、版式中的图片; 6、版面设计中的色彩与符号。 教学重点: 1、版式设计的编排处理原则以及版式设计中的色彩与符号。 第三章版式设计的关系构成要素 教学要求: 通过本章的学习,了解常用版式的类型型、版面美的形式、版式的视觉流程设计。 教学内容: 1、常用版式的类型; 2、版面美得形式; 3、版式的视觉流程设计。 教学重点: 1、版面美的形式及视觉流程; 2、掌握版式设计的关系构成要素。 第四章版式设计的实际运用与分析 教学要求: 通过本章的学习,了解杂志的版式设计、网页的版式设计、报纸的版式设计、产品招贴广告的版式设计、房地产广告的版式设计、画册的版式设计、户外广告的版式设计、DM的版式设计、名片的版式设计及案例分析、展板的版式设计。 教学内容: 1、常用版式作品赏析; 2、环境艺术设计展板设计的特点和要求; 教学重点: 1、环境艺术设计展板设计的特点和要求。 七、实践教学内容和要求 项目一版式视觉元素设计 教学要求:

电子技术教学大纲

《电子技术》教学大纲 第一部分:模拟部分 一、课程基本信息: (一)课程名称:电子技术(模拟部分)课程教学大纲 (二)课程类别: 专业必修课 (三)学时:78学时,其中理论70学时,实验8学时 (四)学分:6 (五)开设学期及周学时分配:第3学期,周6 二、课程的性质和任务: 本课程是电类各专业的一门重要的专业技术基础课之一,主要研究半导体器件、放大电路及信号的产生处理,是理论和实践紧密结合的应用性很强的一门课程。 本课程的任务是:使学生获得模拟电子技术方面的基本理论、基本知识和基本技能,着重培养学生分析问题解决问题及实践应用的能力。为学习其他有关课程和毕业后从事电子电气工程、自动化及计算机应用方面的工作打下必要的基础 三、课程教学目标: (一)知识目标 通过理论教学,使学生掌握模拟电子电路基础知识,各种基本电路的组成、工作原理、性能特点及主要参数。掌握常用模拟电路的分析和设计方法。 (二)能力目标 通过理论学习和实践教学,使学生具有使用常用电子仪器仪表的能力,具有查阅电子元器件手册并合理选用元器件的能力,阅读和应用常见模拟电路的能力,测试常用模拟电路功能,排除简单故障的能力。 四、教学内容和要求 (一)基础模块 课题一半导体基本知识及其基本应用 教学内容 a)半导体基本知识 b)PN结及其特性 c)半导体二极管结构、特性及其基本应用 d)特殊半导体二极管 教学要求 1.掌握半导体二极管的单向导电作用、正偏和反偏,稳压管的稳压作用,整流滤波等基本概念 2.掌握普通二极管和稳压管的外特性 3.掌握单向桥式整流滤波电路输出直流电压和输入交流电压有效值的关系 4.熟悉普通二极管和稳压管的主要参数,使用方法,注意事项,选用原则;发光二极管和光电二极管的性能、使用方法

(完整版)教学大纲-电子科技大学教务处

《电子技术基础实验Ⅰ》课程教学大纲 课程英文名称:Fundadamentals of Electronic Technology Lab Ⅰ 课程代码:E0200710 学时数:20 学分数:1 课程类型:实验课程 适用学科专业:电子类专业 先修课程:电路分析 执笔者:崔红玲编写日期:2013-11-15 审核人: 一、课程简介 本课程是电子信息工程、通信工程等电子类专业的一门重要实验课程,以“电路分析基础”作为背景知识,在服务于理论课程的同时,注重引导学生建立工程上的感性认识,认识常用的电子元器件,学会使用常用的电子测量仪器,学会简单的电子测量方法,能够设计搭建简单的单元电路。 一、Introduction This course is an important experiment course in electronic and communication engineering. Based on the “Basic Theories of Circuit Analysis”, this course not only serves for the theory courses, but also aims at helping students have a perceptual cognition on electronic engineering projects. Students in this course will be able to know about basic electronic components, use electronic measurement devices, handle simple electronic measurement methods, and design and build the basic circuit unit. 二、课程目标 引导学生建立工程上的感性认识,增强培养学生实践动手能力。通过设计单元电路引导 学生学会应用理论知识,通过预设的问题和实验中遇到的小故障,引导学生学会独立思考, 培养学学生独立分析问题、解决问题的能力。 二、Goals The course will guide the students to have a perceptual cognition on electronic engineering -on ability. Student will be able to apply the electronic theory and thus improve the students’ hands practically by designing the circuit unit. Also, They will have the ability to think independently by solving the problems and faults in the experiments. These teaching activities will enhance

windows程序设计

消息驱动运行中发生的各种事件(鼠标键盘输入,各种状态的改变等),以消息的形式通知Windows系统Windows系统接收消息,提交给发生事件的应用程序应用程序的窗口处理函数负责处理响应收到的消息处理完成后继续等待下一个消息API application programming Interface SDK software Development kit 事件是用户对计算机操作的动作或程序中某个对象的状态发生的变化,每个事件对应一个消息,即每个事件发生的效果是产生消息消息是描述事件发生的信息事件驱动程序执行的顺序不是事先规定的,而是由事件的发生来控制在程序执行过程中,当某个对象的状态发生变化,或有外部输入等情况发生,则产生相应的事件当事件产生时,系统会发出特定的消息编写程序时可以对这些消息做出反应,也可以不做出;若要做出反应(即响应消息),则把响应此消息的程序写在与此消息相关联的函数中在程序执行时,一旦产生了一个消息,会调用与此消息相关联的函数窗口是Windows应用程序基本的操作单位,是应用程序与用户之间交互的接口,也是系统管理应用程序的基本单位消息传输事件发生,产生消息消息保存到消息队列分配给应用程序消息队列消息循环提取消息窗口函数响应消息MFC Microsoft foundation class MFC应用程序框架提供了一般应用程序需要的全部面向对象软件组件的集成集合MFC程序结构基于框架窗口的应用程序(早期的MFC)程序运行管理、窗口及数据管理分开两部分,与SDK程序类似基于文档/视图的应用程序单文档应用程序(重点)程序运行管理、窗口管理、交互管理、数据管理分开基于对话框的应用程序程序运行管理、对话框管理分开目前的MFC应用程序都采用文档/视图结构,把原来窗口框架类的工作分开窗口框架类管理窗框视图类(即视窗类)管理数据显示、接收用户输入文档类负责数据管理文档视图架构的思想数据嵌入文档中,利用文档的架构管理文档与视图通信,使数据在视图中显示视图显示数据,并与用户交互视图放入窗口中文档模板类对象管理上述对象协调工作CDocument是负责管理数据的类应用程序中的文档类是这个类的派生类作用数据管理程序员应将用户的实际数据对象内嵌在自己的文档类中需要与自己的视图类通信在程序中实现CDocument的派生类,以便嵌入数据对象,并改写成员函数实现对数据的处理用于派生应用程序的视图类CView 作用处理与用户的交互显示文档类中的数据接收用户输入(例如鼠标操作)通常要改写视图类的成员函数OnDraw或OnPrint,实现数据显示框架自动调用OnDraw函数WM_PAINT消息OnPaint()OnDraw() 菜单及响应利用菜单编辑器修改IDR_MAINFRAME 菜单资源在相应的类中为新菜单项映射消息COMMAND单击或用快捷键选中时生产UPDATE_COMMAND_UI上一级菜单显示前生产用于控制菜单状态编写新菜单项的消息处理函数快捷键在菜单项标题后面加“(&字母)”菜单动态为要添加的菜单项定义一个宏(例如ID_MENU1)用CWnd::GetMenu( )获得指向菜单条的指针(如果在子菜单上添加,应用CMenu::GetSubMenu()获得该菜单的指针)为菜单项手工映射消息处理函数在适当的地方调用InsertMenu或AppendMenu添加菜单项调用CWnd::DrawMenuBar()函数重画菜单动态删除菜单项与上面类似(使用DeleteMenu函数)动态创建菜单项用函数BOOL CreateMenu( );获得新菜单句柄,再用此句柄当作AppendMenu函数的第2个参数(需进行(UTIN)强制类型转换)通常用于创建弹出式菜单的顶级(不需映射消息)快捷菜单建立菜单如果菜单已经存在,且功能齐全,只需确定弹出方式即可也可以另加一个菜单资源,此法可使菜单条中不显示快捷菜单关联类(对于新加菜单)把此菜单资源关联到视图类上选中此菜单资源的情况下打开类向导,选视图类影射消息并编写消息处理函数选择弹出方式可在视图类的WM_CONTEXTMENU消息(鼠标右键单击客户区时产生)处理函数中弹出Windows系统有一个存放消息的队列每个应用程序也有一个消息队列Windows系统先将收到的消息存放在系统队列中,然后再分发到相应的应用程序队列中应用程序则从自身的队列中获取消息并进行处理类的消息响应一个类要响应多种消息对于每一种消息最重要的是知道是哪个消息:消息的标识(ID 身份证)这个消息对应的响应函数是什么(函数的起始地址)解决的办法建立一个结构体数组(消息映射表)一行(一个数组元素)是一个消息的信息每行至少包含消息的标识(ID)指向响应函数的指针消息的响应当收到消息后,根据消息ID在表中查找,找到后调用对应的消息处理函数消息路由当一个类收到消息后,先在自己的消息映射表中搜索,搜索到就执行相应的消息处理函数,然后结束消息处理过程未搜到,则到上一层基类中搜索,依此类推如果都未搜到,则交给系统默认的窗口处理函数去处理消息种类窗口消息命令消息控件通知消息实现消息映射消息映射的要点为每个要响应的消息建立一个处理函数为每个能够响应消息的类建立一个结构类型的数组(消息映射表)并填写这个数组编写每个消息处

相关主题
文本预览
相关文档 最新文档