由于最近很长一段时间内,自己的生活比较糟糕一直没法把之前打算发的一些东西发上来,今天趁三天假期赶紧发把暑假写的一些东西发上来好总结一下,暂时寥寥写上几句。
之前看了PetZold大师的Window程序设计那本书,然后就尝试着用纯的API写个程序,发现这样写思路很清晰,但就是自己要做的事情太多,程序相比MFC看起来要简洁,但有重写了很多代码,效率也较MFC的低,上一章的迷你电话本我只花了差不多一个小时,而这个Win32版本的电话本差不多有两天时间了。
界面功能:
功能跟上一个MFC版本的差不多,多了个可以双击List控件编辑相应条目。
数据结构:由于没想到好的序列化方法,就暂且用字符数组保存
重载这个操作符,我目的是为了在使用列表控件是方便索引CPerson的相应数据。
数据的保存我采用了STL的list存储:list<Person> pDataList;//保存的数据链
下面是程序的主体部分:
然后我说下Win32程序设计的特点,界面控件部分很多时候就是使用SendMessage给控件发送消息,以控制控件
LRESULT SendMessage(
HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); //hWnd就是控件的窗口句柄 Msg是消息类型 而wParam跟lParam则是跟相应的控件和消息类型有关,这个可以查阅MSDN
还是以列表控件为例,看下win32Api对控件的使用方式,下面是程序中显示电话联系条目的代码:
首先是初始化列表控件的(在主对话框的消息处理函数中):
同样是list控件的数据更新函数:
还有个值得关注的地方是,如何通过点击获取用户正在点击哪一行数据?并且对此消息作出响应?这个就要了解下WM_NOTIFY消息了
通过对这个了解也可以理解MFC的Notify消息:
这个程序较为简单,本文关键词:WM_NOTIFY/ListCtrl/Win32Api
程序见:下载