《Windows-API窗口程序设计.doc》由会员分享,可在线阅读,更多相关《Windows-API窗口程序设计.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateWindows-API窗口程序设计华东师范大学计算机科学技术系学生上机报告集美大学计算机工程学院实验报告课程名称:TCP/IP协议分析与编程班级:实验成绩:实验项目名称:Windows API窗口程序设计学号:上机实践日期:2016-03-24实验项目编号:01组号:1上机实践时间: 2学时一、 实验目的运用Windows API进行编程二、实验内容与设计思想在桌面显
2、示Windows窗口。窗口内居中显示“大家好,这是我的第一个Windows API程序!”同时播放背景音乐,并可通过程序改变窗口显示风格为只有标题栏,以及鼠标指针形状为手型。 三、实验使用环境操作系统: Microsoft Windows XP SP2编程环境: Visual C+ 6.0简体中文企业版四、实验步骤和调试过程(要求:给出源码及实验结果截图)源码:#include/定义手型鼠标指针#ifndef IDC_HAND#define IDC_HAND MAKEINTRESOURCE(32649)#endifLRESULT CALLBACK WndProc (HWND, UINT, WP
3、ARAM, LPARAM) ;/声明WndProc回调函数/主函数,程序调用的入口int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow) static TCHAR szAppName = TEXT (HelloWorld!) ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ;
4、wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION) ; wndclass.hCursor= LoadCursor (NULL,IDC_HAND) ; wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = s
5、zAppName ; if (!RegisterClass (&wndclass) MessageBox (NULL, TEXT (This program requires Windows XP!), szAppName, MB_ICONERROR) ; return 0 ; hwnd = CreateWindow (szAppName, / window class name TEXT (对话框), / window caption WS_OVERLAPPEDWINDOW, / window style CW_USEDEFAULT, / initial x position CW_USED
6、EFAULT, / initial y position CW_USEDEFAULT, / initial x size CW_USEDEFAULT, / initial y size NULL, / parent window handle NULL, / window menu handle hInstance, / program instance handle NULL) ; / creation parameters ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0,
7、 0) TranslateMessage (&msg) ; DispatchMessage (&msg) ; return msg.wParam ;/返回长整型的消息处理回调函数LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (message) case WM_CREATE:PlaySound (TEXT (C:/hellowin.wav), NULL, SND_FILENAME | SND
8、_ASYNC) ; return 0 ; case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect); DrawText (hdc,TEXT(大家好,这是我的第一个Windows API 程序!),-1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; return DefWindowProc (hwnd, message, wParam, lParam) ;实验结果:五、实验小结(必写)1.执行时出现错误由于程序引用了PlaySound函数,应该在库文件加上相应的库 winmm.lib,在工程设置连接工程选项里加上winmm.lib,并将/subsystem:console改成/subsystem:windows2.手型在windows7不能直接添加,需要在头加上#ifndef IDC_HAND#define IDC_HAND MAKEINTRESOURCE(32649)#endif七、附录网络编程技术与应用-