实验指导(C++面向对象部分)

发布时间 : 星期日 文章实验指导(C++面向对象部分)更新完毕开始阅读

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 = \ // 窗口类名 if (!RegisterClass (&wndclass)) // 注册窗口 {

MessageBox (NULL, \窗口注册失败!\ return 0 ; }

// 创建窗口

hwnd = CreateWindow (\ // 窗口类名 \我的窗口\ // 窗口标题

WS_OVERLAPPEDWINDOW, // 窗口样式

CW_USEDEFAULT, // 窗口最初的 x 位置

CW_USEDEFAULT, // 窗口最初的 y 位置

CW_USEDEFAULT, // 窗口最初的 x 大小

CW_USEDEFAULT, // 窗口最初的 y 大小

NULL, // 父窗口句柄 NULL, // 窗口菜单句柄

hInstance, // 应用程序实例句柄

NULL) ; // 创建窗口的参数

ShowWindow (hwnd, nCmdShow) ; // 显示窗口 UpdateWindow (hwnd) ; // 更新窗口,包括窗口的客户区 while (GetMessage (&msg, NULL, 0, 0)) {

TranslateMessage (&msg) ; // 转换某些键盘消息

DispatchMessage (&msg) ; // 将消息发送给窗口过程,这里是WndProc }

return msg.wParam ; }

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {

HDC hdc; PAINTSTRUCT ps;

static HWND hwndButton, hwndEdit[3]; char strEdit[80]; float a[3];

double root[2]; int i;

switch (message) {

case WM_CREATE: // 窗口创建产生的消息 hwndEdit[0] = CreateWindow(\WS_CHILD|WS_VISIBLE|WS_BORDER,

10, 60, 100, 25, hwnd, NULL, NULL, NULL ); hwndEdit[1] = CreateWindow(\WS_CHILD|WS_VISIBLE|WS_BORDER,

120, 60, 100, 25, hwnd, NULL, NULL, NULL ); hwndEdit[2] = CreateWindow(\WS_CHILD|WS_VISIBLE|WS_BORDER,

230, 60, 100, 25, hwnd, NULL, NULL, NULL ); hwndButton = CreateWindow(\计 算\

WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,

340, 60, 80, 25, hwnd, NULL, NULL, NULL ); return 0 ;

case WM_COMMAND: // 命令消息,控件产生的通知代码在wParam的高字中

if (((HWND)lParam == hwndButton )&&( HIWORD(wParam) == BN_CLICKED ))

// 按下按钮 {

// 获取三个编辑框控件的内容,并将其转换成float数值 for (i=0; i<3; i++) {

GetWindowText( hwndEdit[i], strEdit, 80); // 获取编辑框内容

a[i] = (float)atof(strEdit); // 将字符串转换成float数值 }

int n = GetRoot(a[0], a[1], a[2], root); if (n<1) strcpy(str, \方程无根!\

else sprintf(str,\方程的解为:%f, %f\ InvalidateRect(hwnd, NULL, TRUE); }

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

TextOut(hdc, 10, 10, \请输入一元二次方程的系数:\ TextOut(hdc, 10, 40, \

TextOut(hdc, 120, 40, \ TextOut(hdc, 230, 40, \

TextOut(hdc, 10, 90, str, strlen(str)); EndPaint(hwnd, &ps); return 0 ;

case WM_DESTROY: // 当窗口关闭时产生的消息 PostQuitMessage (0) ; return 0 ; }

return DefWindowProc (hwnd, message, wParam, lParam) ; // 执行默认的消息处理 }

【思考题】

1.查询msdn,了解常用消息的用法。 2.查询msdn,了解窗口函数的详细用法。

实验七 利用控件及MFC编程 【实验类型】验证性 【实验要求】必做

【实验目的】

1.了解MFC几个常用框架类的作用。

2.了解常用控件的基本使用方法和消息映射过程。 3.掌握基于对话框的windows程序设计。 4.掌握单文档windows应用程序的编写方法。 【实验内容】

实验题1. 编写对话框应用程序。完成如图所示基本功能。复选“日期”复选框在编辑控件中按如图格式显示日期,复选“时间”复选框在编辑控件中按如图格式显示时间。点击“是控件禁用”按钮,使“复选框”组中,除四个功能按钮以外的控件禁用,点击“使控件可用”按钮,使“复选框”组中,除四个功能按钮以外的控件可用,点击“隐藏控件”按钮,使“复选框”组中,除四个功能按钮以外的控件隐藏,点击“显示控件”按钮,使“复选框”组中,除四个功能按钮以外的控件显示。点击“显示性别和年龄”按钮,根据性别选择和年龄选择,在编辑框中给出对应输出,点击“显示组合框内容”,根据课程和成绩组合框内容,在编辑框中给出相应输出。

实验题2. 编写单文档应用程序。如图所示:在菜单中增加学生基本信息菜单,其下添加一个“添加”菜单项,当点击“添加”菜单项时探出学生基本信息对话框。在对话框中,点击“确定”按钮将学生信息写到视图窗口。调整对话框中对话框颜色组中的红绿蓝滚动条,能够改变“学生信息对话框颜色”。

联系合同范文客服:xxxxx#qq.com(#替换为@)