01 - Windows程序运行机制.docVIP

  • 1
  • 0
  • 约4.53千字
  • 约 4页
  • 2017-08-23 发布于河南
  • 举报
Lesson 1 1.Windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。 2.消息结构: typedef struct tagMSG { // msg HWND hwnd; //接收消息的窗口句柄。和哪个窗口相关联。 UINT message; //消息标识。消息本身是什么。 WPARAM wParam; //消息的附加信息。具体取决于消息本身。 LPARAM lParam; DWORD time; //消息投递时间。 POINT pt; //消息投递时,光标在屏幕上的位置。 } MSG; 3.消息队列: 每个应用程序OS都为它建立一个消息队列,消息队列是个先进先出的缓冲区,其中每个元素都是一个消息,OS将生成的每个消息按先后顺序放进消息队列中,应用程序总是取走当前消息队列中的第一条消息,应用程序取走消息后便知道用户的操作和程序的状态,然后对其处理即消息响应,消息响应通过编码实现。 4.使用VC编程除了良好的C基础外还需要掌握两方面: 一、消息本身。不同消息所代表的用户操作和应用程序的状态。 二、对于某个特定的消息来说,要让OS执行某个特定的功能去响应消息。 5.Window程序入口: int WINAPI WinMain( HINSTANCE hInstance, // 当前事例句柄。 HINSTANCE hPrevInstance, // 先前事例句柄。 LPSTR lpCmdLine, // 命令行指针 int nCmdShow // (窗口)显示的状态 ); 说明:WinMain函数是Windows程序入口点函数,由OS调用,当OS启动应用程序的时候,winmain函数的参数由OS传递的。 6.创建一个完整的窗口需要经过下面四个操作步骤: 一、设计一个窗口类;如:WNDCLASS wndcls; 二、注册窗口类; 如:RegisterClass(wndcls); 三、创建窗口; 如:CreateWindow(),CreateWindowEX(); 四、显示及更新窗口。如:ShowWindow(),UpdateWindow(); 说明:创建窗口的时候一定要基于已经注册的窗口类。 7.Windows提供的窗口类: typedef struct _WNDCLASS { UINT style; //窗口的类型 WNDPROC lpfnWndProc; //窗口过程函数指针(回调函数) int cbClsExtra; //窗口类附加字节,为该类窗口所共享。通常0。 int cbWndExtra; //窗口附加字节。通常设为0。 HANDLE hInstance; //当前应用程序事例句柄。 HICON hIcon; //图标句柄 LoadIcon()。 HCURSOR hCursor; //光标句柄 LoadCursor(); HBRUSH hbrBackground; //画刷句柄 (HBRUSH)GetStockObject(); LPCTSTR lpszMenuName; //菜单名字 LPCTSTR lpszClassName; //类的名字 } WNDCLASS; 8.窗口类注册: ATOM RegisterClass( CONST WNDCLASS *lpWndClass // address of structure with class data ); 9.创建窗口: HWND CreateWindow( LPCTSTR lpClassName, // pointer to registered class name LPCTSTR lpWindowName, // pointer to window name DWORD dwStyle, // window style int x, // horizontal position of window int y,

文档评论(0)

1亿VIP精品文档

相关文档