1:全局变量和类在入口函数前执行。
2:LPCTSTR为长字符串,赋值要用L"string"的格式。
3:添加和删除成员函数都是在类属性里操作的。
4:VS2008对菜单的设置都是在属性里,添加Command消息也是在相应类的属性里。
5:SetTimer()可以随时使用。设置之后便可以加消息处理。
6:在头文件中可以自己定义用户消息,如:define UM_PROGRESS WM_USER+1(小于WM_USER的数值一般为系统 使用的,为了不与系统消息冲突故在WM_USER上加某一常数)
之后还需自己定义消息映射函数,如afx_msg LRESULT OnProgress(WPARAM, LPARAM);(注意返回值必须为 LRESULT类型,入口必须有参数WPARAM,LPARAM,函数中可以不用)
然后在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加ON_MESSAGE(UM_PROGRESS,OnProgress)来关联 UM_PROGRESS和消息响应函数OnProgress()。
7:线条是由画笔(pen)完成的,而填充是由画刷(brush)完成的。
8:DoModal()结束后将返回一个值,IDOK即为1,IDCANCEL即为0。所以可以用if(IDOK==dlg.DoModal())来判 断结束对话框时按得是OK按钮还是CANCEL按钮。
9:要使连续的几个按钮成组,只需将第一个勾选group。
10:调用Invalidate()可使窗口无效,引发重绘。
11:有时候刚创建的资源的ID无法识别,需要先运行下程序,然后就可以了。
12:作图的时候是在设备坐标下进行的(即记录的图形信息是设备坐标下的),但图形的平移旋转等变换是在页面坐标(逻辑坐标)下完成的。若页面坐标原点和设备坐标原点不一致,则重绘时会错位。即对于可滚动窗口,在图形绘画完成后要调用OnprepareDC()重设设备坐标,然后调用DPtoLP()函数将设备坐标转换为逻辑坐标。这样保存到页面坐标下的才是真实的坐标值。
13:在项目属性的c++和链接器的常规项中科添加附加包含目录和库目录。