Win32 SDK值得注意的地方

来源:互联网 发布:张弘范 知乎 编辑:程序博客网 时间:2024/05/02 01:28

 

阅读了theForger's Win32 API的书摘,提取了一些我感觉我自己应该注意到的地方。之后我安排时间学习Charles PetzoldProgramming Windows 5th以及实践win32 SDK项目。在以上学习实践结束前本文会不定期的更新。

 

  • PostMessageSendMessage区别

 可以用PostMessage()或SendMessage()来发送消息.PostMessage()把消息放入消息队列再立即返回.就是说你调用了PostMessage()后消息可能被处理了,也可能还沒有被处理.SendMessage()则真接把消息送往窗口并且在窗口沒有结束处理消息之前不返回.

 

  • 窗口处理回调函数

通常上你不处理的消息就返回一个FALSE,处理的话就是TRUE,除非那个消息

指明了你要返回一个別的值.注意这就是我们在上面做的,默认的就是什么都不做并返回一个FALSE,而我们处理的消息就跳出switch()并返回TRUE.

 

 

 

  • WM_COMMAND参数组成

wParam有两个部分,HIWORD(wParam)中含有提示消息(如果有的话),LOWORD(wParam)含有发送消息的控件或菜单的标识号(注意消息占用两个字节,不超过2^16).lParam含有发送消息的控件的HWND(窗口的句柄)或者为NULL,当消息不是由控件发送.

 

 

  • 关于通用控件的重要说明

对于所有的通用控件,你要用它们之前都要调用InitCommonControls().还要#include<commctrl.h>以便使用函数与一些所必须的通用控件的申明与定义.你还需要在链接设置中加上comctl32.lib,如果它不在那里的话.注意

InitCommonControls()是个旧API,为了使用更多的功能你可以使用InitCommonControlsEx()(就是InitCommonControlSex()),在使用很多最近

才有的通用控件的时候,你也必须要用这个函数.

 

通用控件包括工具栏以及状态栏等,ListView,TreeView,Hotkey,ProgressBar,等控件被规类为通用控件而Button,Edit,ListBox等等控件毫无疑问也很通用,但不是”通用控件”,一般称为”标準控件”.

 

  • 如何销毁HDC(Handle to Device Context,设备上下文的句柄)

GetDC() -- ReleaseDC()

BeginPaint() -- EndPaint()

CreateCompatibleDC() -- DeleteDC()

 

 

 

未读部分

应用第二部分:使用文件与常用对话框

应用第四部分:多文档界面

文本与字体(读得不是很仔细,用的时候仔细看下)