求一个 windows程序设计实例 用C写的API,要在VC++6.0下实现,只是一个小程序,能运行的,要有界面

求一个 windows程序设计实例 用C写的API,要在VC++6.0下实现,只是一个小程序,能运行的,要有界面,第1张

#include <windows.h>//windows程序设计必须罩橘要包物裤团含的头文件

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) //回调函数的声明,将在wndclass.lpfnWndProc = WndProc中用到

//主函数即入口函数

int WINAPI WinMain (HINSTANCE hInstance, //实例句柄

HINSTANCE hPrevInstance,//上一个实例句柄

PSTR szCmdLine, //指向一个0结尾的字符串

int iCmdShow) //窗口开始的大小

{

static TCHAR szAppName[] = TEXT ("HelloWin") //将"HelloWin"赋给szAppName[]

HWND hwnd //定义一个窗口句柄,用来标识窗口

MSG msg //定义一个消息结构体,该结构体包含消息的几个数据

WNDCLASS wndclass //定义一个窗口类,该窗口类也是个结构体,下面的语句是修改结构体数据

wndclass.style = CS_HREDRAW | CS_VREDRAW //窗口绘制模式为水平重绘和垂直重绘

wndclass.lpfnWndProc = WndProc //回调函数为一开始申明的函数

wndclass.cbClsExtra = 0 //类的附加内存(额外的),不需要就设为0

wndclass.cbWndExtra = 0 //窗口的附加内存,同上

wndclass.hInstance = hInstance // 当前实例为系统纯返传递过来的实例,只能是这样,其它系统帮你做好了

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) //加载ICON图标,NULL加载系统的图标,第二个参数使系统里面图标的一个标识

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) //同上,不过是加载光标

wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) // 设置窗口背景为白色

wndclass.lpszMenuName = NULL //因为没有菜单,所以设为空

wndclass.lpszClassName= szAppName //你为你设计的这个窗口类取个名字,在hwnd = CreateWindow(中用到

if (!RegisterClass (&wndclass)) //注册你刚刚设计好的窗口

{

//注册不成功,d出消息框,显示引号里文字

MessageBox ( NULL, //通常是窗口句柄

TEXT ("This program requires Windows NT!"), //消息框显示的文字

szAppName, //题列上的字符串

MB_ICONERROR) //消息框的按钮

return 0

}

//创建窗口

hwnd = CreateWindow( szAppName, // window class name 窗口类的名字

TEXT ("The Hello Program"), // window caption 窗口的标题

WS_OVERLAPPEDWINDOW, // window style 窗口的风格

CW_USEDEFAULT,// initial x position 默认的窗口左上角的X、Y点

CW_USEDEFAULT,// 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, 0)) //消息循环,获取消息

{

TranslateMessage (&msg) //翻译消息,

DispatchMessage (&msg) // 分发消息

}

return msg.wParam //返回消息里的一个参数,只有退出程序时该值才为0

}

//回调函数的定义

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

{

HDC hdc //定义设备上下文句柄

PAINTSTRUCT ps //一个结构体

RECT rect //定义一个矩形

switch (message)

{

case WM_CREATE: //窗口刚刚创建好时发送的消息

//PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) //播放声音

return 0 //返回

case WM_PAINT: //窗口重画时的消息

hdc = BeginPaint (hwnd, &ps) //得到设备上下文句柄

GetClientRect (hwnd, &rect) //得到当前客户区矩形

DrawText (hdc, TEXT ("Hello, Windows 98!"), -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) //对没有定义处理方法的消息,系统默认处理

}

那需要学VC。确切的说是要学MFC。

MFC编图形化程序也是很麻烦的,难学,繁琐。

其实你可以再学Java或者C#。

Java本身也不适合做图形化应用程序,但是比MFC要简单得多。

C#则是当前做图形化程序最简单高效的了,不需要编程单靠鼠标拖拽就能做出图形界面。特别是C#的WPF图形框架更是把图形化编程简化如神行到了极限。

所以强烈建议学C#。

C#语言综合Java和C++的优点。Java和C++都源自C语言。所以学C#之前最好先学一下C++,C、C++、C#可以说是一脉相承,向下兼容的。

总之,学图形化编程比较好的顺序是:

C(结构化语言渣哗,入门)->C++(面向对象语言,铺垫) ->C# (享受快速图形化开发吧)

忘解释那几个名词了,补上:

集成瞎姿开发环境:就是IDE,一类开发工具。

你的代码本来可以直接在记事本里写完,然后命令行下调用编译器编译就能执行了。

集成开发环境将代码编辑、代码编译执行、代码调试功能集成在一起(甚至集成更多功能),使开发人员的开发变得更加高效。比如Visual C++ 6.0就是一个集成开发环境,还有Eclipse、CodeBlocks、Visual Studio等都是。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12321543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存