前言
为什么学SDK呢?
学好它有助于我们了解窗口的形成过程,更好的学习其它窗口程序,比如MFC、易语言等。
关键知识点
SDK有很多很多API,我们不需要每一个都学会,会查就行了,以下是我认为比较重要的且常用的一些东西。
SendMessage与PostMessage
SendMessage与PostMessage有什么区别?
答:SendMessage是直接调用自定义的窗口过程函数,所以它需要等待返回结果才能继续
PostMessage是讲消息放入队列当中,不需要等待返回结果
那么在使用时,我们知道目标的程序有自定义的消息处理函数,那么我们就可以使用你SendMessage发送消息,否则就只能用PostMessage;再或者我们需要目标消息过程函数的返回值,那么就只能使用SendMessage
WM_TIMER
WM_TIMER这个消息是一个定时器,每过一段时间就会执行的一个消息,所以有些代码我们可以写进去,达到一个单线程模拟出多线程的效果
WM_NOTIY
之所以说这个,是因为在编写控件时,WM_COMMAN消息一直不来,原因是我们的窗口在创建的时候没有给NOTIFY属性
@err.hr
在进行调试的时候,将@err.hr放入调试监视变量,可以看到每一次的运行GetLastError结果
TranslateMessage
该函数是将虚拟键消息转换为字符消息,比如我们按A键,他会给我们进行转换,这样我们可以直接在WM_CHAR获取到我们的按键
TranslateAccelerator
千万不要和上面的搞混了,我看到很多教程居然把这个讲错了,这个才是将快捷组合键进行翻译的函数,比如我们使用这个函数进行翻译,那么我们按下三个组合键将在第三次按下时触发WM_COMMAND,将不再是三个KEYDWON
ChatGPT中文版
这个也是我突然发现的一个好玩的,在VSCode扩展中有个叫做ChatGPT中文版,安装好就可以让它给你解释相应的代码还可以提问它程序如何编写的问题,比如我问它win32程序窗口创建代码,它直接返回给我相应的代码框架。如果平时工作或者学习中,使用该插件帮助我们取分析和编写代码,效率将飞速提升
总结
以上内容是我在学习SDK时的收获,以后也会不断补充相应的内容,当然很多我没有写到,因为知识永远是来用的,学的多用不上也没有用