- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
孙鑫VisualC视频学习总结LESSON1
LESSON 1 WINDOWS程序内部运行原理
操作系统所能够完成的每一个特殊功能通常都有一个函数与其对应,也就是说,操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(Application Programming Interface),简称Windows API
消息机制
操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
句柄HWND
操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。
消息message
Windows消息一般以WM_开头,例如WM_KEYDOWN
WPARAM、LPARAM
指定消息的附加信息,比如说按键消息中按下键的ASCII值就存放在WPARAM中
time
表示消息投递时候的时间
POINT
typedef struct tagPOINT {
LONG x;
LONG y;
} POINT, *PPOINT;
当消息投递的时候,光标在屏幕上面的位置
WinMain函数
windows程序的入口函数
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
);
HINSTANCE
实例,例如当你运行一个窗口,这个窗口就是一个实例
lpCmdLine
命令行参数,例如DOS下输入命令notepad 1.txt,1.txt就是命令行参数
nCmdLine
指定程序窗口显示状态:最大化、最小化等
创建一个完整的窗口的步骤:
窗口类的设计
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
style
窗口的样式,比如水平重画和垂直重画
WNDPROC
指定了这一类型窗口的过程函数,也称为回调函数。回调函数的原理是这样的,当应用程序收到给某一窗口的消息时,就应该调用某一函数来处理这条消息。这一调用过程不用应用程序自己来实施,而由操作系统来完成,但是,回调函数本身的代码必须由应用程序自己完成。对于一条消息,操作系统到底调用应用程序中的哪个函数(回调函数)来处理呢?操作系统调用的就是接受消息的窗口所属的类型中的lpfnWndProc成员指定的函数。每一种不同类型的窗口都有自己专用的回调函数,该函数就是通过lpfnWndProc成员指定的。
cbClsExtra
为每一个类指定一定字节数的附加内存空间,一般设为0
cbWndExtra
为每一个窗口指定一定字节数的附加内存空间,一般设为0
HINSTANCE
当前程序实例号
HICON
图标句柄,赋值:
HICON LoadIcon(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpIconName // name string or resource identifier
);
若是使用windows标准
您可能关注的文档
最近下载
- 20210402张红伟教学成果奖讲座.pdf VIP
- 铁路路基压实质量检测—地基系数K30检测.pptx
- 《城市轨道交通车站设备》章节练习题及答案(全).doc VIP
- 初级中学政治教师资格考试学科知识与教学能力2024年下半年自测试题及解答.docx VIP
- 1530-7 高思学校竞赛数学导引·五年级 正文.pdf
- 中外历史纲要上第17课 第二次世界大战及战后国际秩序的形成 精品教学设计.docx VIP
- 2024陕西西安工程大学管理和专技岗位招聘12人笔试备考题库及答案解析.docx
- 变压器主保护——差动保护设计.docx VIP
- 电除尘器一般故障分析.docx
- 2024年下半年教师资格考试初级中学政治学科知识与教学能力自测试卷及解答.docx VIP
文档评论(0)