桌面绘图程序,该如何处理

桌面绘图程序
今天写了一个能够在当前桌面上*绘图的程序.

主要的思想是如下:程序基于单文档,生成是将其最大化,透明化,禁用标题栏,工具栏,状态栏;使得程序运行时,就像在桌面做画一样,实际是在透明的单文档上做画.

下面是关键代码:

1.ModifyStyle(WS_CAPTION,0,SWP_DRAWFRAME);   禁用标题栏;

2.cs.hMenu=NULL;关掉菜单栏;

3.m_pMainWnd-> ShowWindow(SW_SHOWMAXIMIZED);初始最大化显示;

问题:

1.能否详细说明一下ModifyStyle()函数的用法,查阅了一些资料包括MSDN,解释都不是很容易懂.

2.最大化的单文档的边框如何能够消除?

3.添加了一个右击弹出菜单,其中一项 "退出 ",自定义了退出程序,使用了exit()函数,感觉不是很好,请问应该怎么写好??

4.添加的右击弹出菜单,另一项是 "刷新 ",调用了Invalidate()函数,想要将刚才画的线重画掉,但是却毫无效果了,请问着是为什么,应该怎么做???


------解决方案--------------------
OnDraw()在 认为窗口需要重新画的时候执行这个函数,
一般所有绘画代码都必须放在这里..不然一个刷新都没了..
OnEraseBk() 是重画背景时被调用的..
把它直接return true;就可以不重画背景了.有时候可以省略些无用绘画.
------解决方案--------------------
BOOL ModifyStyle(DWORD dwRemove,DWORD dwAdd,UINT nFlags = 0) 第一个参数表示移除,第二个表示添加,最后一个是个标志位,有一系列标志.
函数返回值BOOL型,当 window styles 有改动时为真,未改动时为假.