使用API函数进行Windows程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一使用API函数进行Windows程序设计

实验目的:

了解Windos应用程序的一般步骤,使用API函数进行应用程序设计。

实验环境:

硬件环境:奔3以上处理器,512MB以上内存空间

软件环境:windows2000以上操作系统,VC6.0编译环境。

实验原理:

利用VC6.0开发环境,对实验所要求的程序设计项目,编辑C语言源程序并形成.cpp 源代码文件,再编译.cpp 文件形成.obj 目标代码文件,经过. obj文件与系统标准代码的连接形成.exe 可执行代码文件,运行.exe文件以得到实验所期望的结果。

实验内容与完成情况:

1、使用API函数建立Windows应用程序框架。主窗口的名称为“我的API函数”

2、在窗口中点击鼠标左键绘制一个圆,点击鼠标右键输出一段文字,其结果如下图所示:点击鼠标左键的结果:

点击鼠标右键:

源代码:

#include //必须包含windows.h头文件才能调用Windows API函数

//在此说明消息映射函数的回调函数以便在WinMain引用

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int i=0;

//------------ 以下对窗口的初始化----------------

// Windows的入口函数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,

LPSTR lpszCmdLine,int nCmdShow)

{

MSG Msg ;

//========窗口类的初始化=========

//声明一个窗口类

WNDCLASS wndclass ;

char lpszClassName[] = "简单窗口"; //窗口类名

wndclass.style = 0; //窗口类型为缺省类型

wndclass.lpfnWndProc = WndProc ; //窗口处理函数为WndProc wndclass.cbClsExtra = 0 ; //窗口类无扩展

wndclass.cbWndExtra = 0 ; //窗口实例无扩展

wndclass.hInstance = hInstance ; //当前实例句柄

//窗口的最小化图标为缺省图标,这种图标是系统预定义图标

wndclass.hIcon = LoadIcon( NULL, IDI_APPLICA TION) ;

//窗口采用箭头光标,这种光标是系统预定义图标

wndclass.hCursor = LoadCursor( NULL,IDC_ARROW);

//使用系统定义的白色画刷为背景画刷

wndclass.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL ; //窗口中无菜单wndclass.lpszClassName = lpszClassName; //窗口类名为"简单窗口"

//========窗口类的初始化完成=========

//========窗口类的注册============

if(!RegisterClass( &wndclass))

{

//注册失败后返回

return FALSE ;

}

//========窗口类注册完成===========

//========窗口创建==============

HWND hwnd ; //定义窗口句柄

char lpszTitle[]= "我的API函数"; //窗口标题名

hwnd=CreateWindow(

lpszClassName, //窗口类名

lpszTitle, //窗口实例的标题名

WS_OVERLAPPEDWINDOW,//窗口的风格

CW_USEDEFAULT,

CW_USEDEFAULT, //窗口左上角坐标为缺省值

CW_USEDEFAULT,

CW_USEDEFAULT, //窗口的高和宽为缺省值

NULL, //此窗口无父窗口

NULL, //此窗口无主菜单

hInstance, //创建此窗口的应用程序的当前句柄

NULL) ; //不使用该值

//========窗口创建完成=============

//========窗口显示===============

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

UpdateWindow(hwnd); //绘制用户区

//========窗口显示完成=============

//========消息循环开始=============

while( GetMessage(&Msg, NULL, 0, 0))

{

TranslateMessage( &Msg) ;

DispatchMessage( &Msg) ;

}

//========消息循环结束=============

return Msg.wParam;

}

//----------------------------------------------消息映射函数-------------------------------- LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam,

LPARAM lParam)

{

PAINTSTRUCT pt;

HDC hDC;

HBRUSH hBrush;

HFONT hFont;

switch(message)

{

case WM_DESTROY:

PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息

break;

case WM_PAINT:

hDC=BeginPaint(hwnd,&pt);

if (i==1)

{

//得到系统的绿色画刷

hBrush=CreateSolidBrush(RGB(0,255,0));

//把画刷选入设备环境句柄

SelectObject(hDC,hBrush);

//画圆

Ellipse(hDC,100,100,200,200);

}

else if (i==2)

{

hFont=::CreateFont

相关文档
最新文档