VC学习笔记

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++和链接器的常规项中科添加附加包含目录和库目录。

你可能感兴趣的:(c,String,command,user,图形)