MFC学习笔记之一——————win32 SDK程序框架逻辑剖析
来源:互联网 发布:淘宝评价后怎么截图 编辑:程序博客网 时间:2024/05/16 16:07
第一天学习MFC,主要将window程序的运行,一些重要的API函数的初步了解,为下一步学习MFC基础基础。将学习到的东西记记~
windows应用程序与操作系统之间通过消息传递实现,操作系统将事件都封装成一个MSG的消息结构体,两者之间的交互通过消息队列完成。来看看消息中具体应有的那些信息:
typedef struct tagMSG { // msg HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt;} MSG;
(1)HWND(第一个参数)是一个窗口的句柄,句柄是系统资源的标识,操作系统要管理和操作这些资源,都是通过句柄找到这个句柄。功能上相当于指针。
比如按照资源的类型,有我们今后常用到的HICON(图标句柄),HCURSOR(光标句柄),HWND(窗口句柄),HINSTANCE(应用程序的实例句柄)
(2)UINT 表示一个无符号的整型,是一个消息的表示,比如是一个按键消息,鼠标键按下消息,其作用是区别各种不同种类的消息。
(3)WPARAM、LPARAM实际上是整型,指示的是消息的附加信息,比如说按下A键是,首先是WM_CHAR消息(message中指示),而附加参数指示的就是我们按下的具体是哪一个按键。
(4)消息post的时间,整型; (5)POINT结构体,包含X,Y坐标
其次来了解一下winmain函数,此函数相当于C中main函数,起到程序入口函数的作用,由系统调用。
int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // pointer to command line int nCmdShow // show state of window );
前面两个参数指示的是应用程序的实例句柄,但是第二个参数在win32环境下总是为NULL;
LPSTR 是一个字符串的长指针,是用来存放命令行的参数
显示的状态。最大化,最小化,等等
winmain中,首先是窗口的类型的确定,产生一个窗口就像生产一辆汽车,将其中的零件填满就行了。
即将一个WNDCALSS结构体中的成员变量赋相应的值。
实例化一个窗口后,进行注册,RegiterClass();
创建窗口CreateWindow();
RegisterClass(&wndcls);HWND hWnd;hWnd = CreateWindow("nate","myfirst",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,600,400,NULL,NULL,hInstance,NULL);ShowWindow(hWnd,SW_SHOWNORMAL);UpdateWindow(hWnd);
其次就是一个消息循环。如:
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}//end of the while
循环中的两个函数意义不说也能大概知道,对于GetMessage()函数,一般情况返回非零值(C中非零则真),当获得WM_QUIT消息时返回0值,循环结束,程序完成。
窗口过程函数,即代表这个窗口的相 应执行的一些功能
其中结构主要是一个switch语句,包含自定义的各种消息的响应,WindowProc是被系统调用 的。
LRESULT CALLBACK WinNateProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
各个参数的含义已经清楚,
- MFC学习笔记之一——————win32 SDK程序框架逻辑剖析
- MFC学习笔记之一——————win32 SDK程序框架逻辑剖析
- MFC学习笔记(一)——MFC框架程序剖析
- 《VC++深入详解》学习笔记[2]——第3章MFC框架程序剖析
- MFC——2.MFC框架程序剖析
- Win32学习笔记——win32主框架
- VC++深入详解笔记——3.MFC框架程序剖析
- <<深入浅出MFC>>笔记1——Win32基本程序观念
- 深入剖析MFC基础框架——跟踪MFC单文档程序的执行过程:
- MFC进修笔记2——MFC和Win32
- 《MFC深入浅出》学习笔记--------Win32 SDK 程序开发流程
- 《VC++深入详解》读书笔记——3.MFC程序框架剖析
- Linux Framebuffer驱动框架剖析之一—软件需求
- DirectX SDK 2006学习笔记1——框架
- siverlight学习笔记之一—初级创建“helloworld”程序
- 吕鑫MFC就业培训宝典学习笔记—创建一个简单的win32应用程序(2-1)
- 《STL源码剖析》学习笔记之四——序列式容器(deque之一)
- MFC学习笔记——应用程序框架分析(CWinApp)
- sqltype IsDBNull
- C++虚函数表解析(转)
- 只用html就可以实现图像的左右滚动效果
- 基于802.1x认证技术的应用分析
- Nand Flash与Nor Flash
- MFC学习笔记之一——————win32 SDK程序框架逻辑剖析
- <<道路与梦想>> 读后感
- MySQL GUI TOOL导出(备份)数据库为SQL文件
- directx sdk 安装
- 网页中,新打开窗口改变原来窗口的值window.open
- 用js实现页面布局的滑动门和TAB
- 将新打开的窗口放置在页面中间window.open
- 请教一个问题?忘记登录系统密码了,应该怎么办?
- 僵尸进程