您当前的位置:首页 > 互联网教程

windows编程 程序每行注释

发布时间:2025-05-19 10:35:38    发布人:远客网络

windows编程 程序每行注释

一、windows编程 程序每行注释

1、#include<windows.h>//windows程序设计必须要包含的头文件

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

3、int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)

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

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

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

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

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

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

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

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

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

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

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

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

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

17、wndclass.lpszClassName= szAppName;//你为你设计的这个窗口类取个名字

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

19、MessageBox( NULL, TEXT("This program requires Windows NT!"),

20、szAppName, MB_ICONERROR);//注册不成功,弹出消息框,显示引号里文字

21、hwnd= CreateWindow( szAppName,// window class name

22、TEXT("The Hello Program"),// window caption

23、WS_OVERLAPPEDWINDOW,// window style

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

25、CW_USEDEFAULT,// initial y position

26、CW_USEDEFAULT,// initial x size默认窗口显示的宽和高

27、CW_USEDEFAULT,// initial y size

28、NULL,// parent window handle没有父窗口

29、NULL,// window menu handle没有菜单、菜单句柄为空

30、hInstance,// program instance handle程序当前实例,由系统传递

31、ShowWindow(hwnd, iCmdShow);//显示窗口

32、while(GetMessage(&msg, NULL, 0, 0))//消息循环,获取消息

33、TranslateMessage(&msg);//翻译消息,

34、DispatchMessage(&msg);//分发消息

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

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

37、case WM_CREATE://接受到的消息,窗口刚刚创建好时发送

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

39、case WM_PAINT://接受到的消息,窗口发生变化时

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

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

42、DrawText(hdc, TEXT("Hello, Windows 98!"),-1,&rect,

43、DT_SINGLELINE| DT_CENTER| DT_VCENTER);//输出引号里文字,后面参数定义它输出的方式

44、EndPaint(hwnd,&ps);//释放设备上下文句柄

45、case WM_DESTROY://窗口销毁时的到的消息

46、return DefWindowProc(hwnd, message, wParam, lParam);//对没有定义处理方法的消息,系统默认处理

二、C语言windows,OpenGL编程

查找 MSDN可以得知,MSG里面的 pt坐标是相对于窗口的左上角的;

2.至于声音控制和播放,可以使用 Windows自带的 MCI API,或者使用 DirectSound来播放,我推荐你使用 un4seen的 BASS,简单实用强大,一两个函数就可以播放音效了;

3.你要使用 alpha blend与桌面进行镂空运算,就必须首先获得桌面的窗体句柄,OpenGL的 alppha运算我不是很懂,不过 Direct3D的话就简单多了;

4.屏幕常亮,其实就是阻止系统进入休眠状态,每当系统要进入休眠状态之前,都会向系统的所有窗口发送一条消息,你拦截这条消息,进行特别的处理就可以防止系统进入休眠了,至于是什么消息,请查看 MSDN,我也好久没用过这条消息了;

5.bmp文件可以保存 alpha通道,使用 32bit色深的 bmp文件就可以了,RGB分别 8bit,alpha通道 8bit,不过说到 alpha通道,tga或者 png图片更加合适,因为他们可以进行无损压缩;

6.用GetPocAddress导出函数,只能用类型强制转换,这个是 windows的原则,我们只能去迎合它了...

7.执行 NULL指针的话,不同的系统会有不同的反应,XP是直接程序崩溃,Vista或者以上的系统,就会提示无响应

8.如果你建立的工程是 Win32窗口程序,那么就不会有 DOS窗口,如果你建立的是 Win32控制台程序,那么就会有 DOS窗口;如果你使用 OpenGL实用库来创建 OpenGL程序,那个 DOS窗口是无法消除的,它可以帮助你进行错误排查

9.不要用 Dev C++了,用 VS2010吧,这是行业规范

三、c编程初学软件哪个好

Dev-C++是一个Windows环境下的一个适合于初学者使用的轻量级C/C++集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。它集合了MinGW中的GCC编译器、GDB调试器和AStyle格式整理器等众多自由软件。

最经典的C语言编译器,系统体积小,简单易学,容易上手,而且很多前人或书籍的程序均基于该编译器,是学习C语言的首选。

目前主流的C/C++语言编译器,包含强大的类和内嵌WinAPI的MFC,具有可视化的编程界面。软件报错比较准确,但比较难用。是微软推出的一款编译器,是一个功能强大的可视化软件开发工具。

Code::Blocks是一个开放源码的全功能的跨平台C/C++集成开发环境。Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets(2.6.2unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢。

C-Free是一款集成开发环境(IDE),支持多种编译器的专业化C/C++,使用者可以轻松地编辑、编译、连接、运行、调试C/C++程序。它安装包很小而且调试起来比较方便适合初学者。

GNU编译器套件(GNUCompilerCollection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。