Windows编程初涉
来源:互联网 发布:淘宝宝贝被别人复制了 编辑:程序博客网 时间:2024/06/05 02:15
第一次接触Windows编程 就遇到了第一个瓶颈 发现 消息循环代码中的函数都是我之前没有见过的。就这样一点一滴开始了漫长的学习之旅。
消息循环代码:
While(GetMessage(&Msg,NULL,0,0)>0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
首先 在老师的帮助下 我了解了句柄 线程等等一系列名词的意义。
句柄:标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息。
百度中是如是解释 类似于指针 却不同于指针,不能利用句柄来直接阅读文件中的信息。
线程(Thread):是程序中单个顺序流程。
MSG:message结构体,代表消息 具体定义如下:
函数功能:
GetMessage函数的功能是从线程的消息队列中取得一个消息,并将其放于指定的结构。获取消息成功后,线程将从消息队列中删除该消息。
参数列表:GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax)
lpMsg:指向MSG结构的指针,该结构从线程的消息队列里接收消息信息。
hWnd:取得其消息的窗口的句柄。当其值取NULL时,GetMessage为任何属于调用线程的窗口检索消息,线程消息通过PostThreadMessage寄送给调用线程。
wMsgFilterMin:指定被检索的最小消息值的整数。
wMsgFilterMax:指定被检索的最大消息值的整数。
返回值:如果函数取得WM_QUIT之外的其他消息,返回非零值。如果函数取得WM_QUIT消息,返回值是零。如果出现了错误,返回值是-1。
TranslateMessage函数:该函数将虚拟键消息转换为字符消息。字符消息被寄送到调用线程的消息队列里,当下一次线程调用函数GetMessage或PeekMessage时被读出。
参数列表:TranslateMessage( CONST MSG*lpMsg)
IpMsg:指向含有消息的MSG结构的指针,该结构里含有用函数GetMessage或PeekMessage从调用线程的消息队列里取得的消息信息。
返回值:如果消息被转换(即,字符消息被寄送到调用线程的消息队列里),返回非零值。如果消息是WM_KEYDOWN,WM_KEYUP WM_SYSKEYDOWN或WM_SYSKEYUP,返回非零值。
参数列表:DispatchMessage(CONST MSG*lpMsg);
函数功能:该函数分发一个消息给窗口程序。通常消息从GetMessage函数获得。消息被分发到回调函数(过程函数),作用是消息传递给操作系统,然后操作系统去调用我们的回调函数,也就是说我们在窗体的过程函数中处理消息。
返回值:返回值是窗口程序返回的值。尽管返回值的含义依赖于被调度的消息,但返回值通常被忽略。
- Windows编程初涉
- Windows编程初涉
- Windows 内核编程初涉
- Windows编程学习笔记 lesson1 windows编程初解、数据类型
- windows 编程
- Windows编程
- windows编程
- Windows编程
- windows编程
- windows编程
- windows编程---
- windows编程
- windows编程
- WINDOWS编程
- Windows编程
- windows 编程
- windows编程
- Windows编程
- java类的初始化顺序
- Linux启动、关闭x-window
- 编程练习(第三周)
- oracle安装过程
- 带你一步步理解使用 ConstraintLayout
- Windows编程初涉
- LeetCoder_____ZigZag Conversion(6)
- 401. Binary Watch
- JSP基础之web配置
- Life for experience !
- 常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向)
- sql视图
- 基于win32的USB识别程序
- 【JAVA之容器】2.Collection