DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年7月17日

摘要: 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用 UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)。 用处:主要控制ddx_data 把控件中的值和变量进行交换 比如你有个编辑框,输入了一些值,你的程序怎么得到呢;必须先调用这个(当然是在用了ddx的情况) 反之控件的成员变量中的值也可以通过该函数自动显示到控件里面,根据传进来的是true或者false 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量 阅读全文
posted @ 2012-07-17 16:45 DoubleLi 阅读(53555) 评论(0) 推荐(2)

摘要: from:http://blog.csdn.net/leolee82/article/details/6992626先载入一张图片,ID为IDB_BITMAP2TestDlg.h中:CBrush m_brBk;//在public中定义TestDlg.cpp中:在初始化函数OnInitDialog()中加入:[cpp] view plaincopyprint?BOOLCTestDlg::OnInitDialog(){CDialog::OnInitDialog();CBitmapbmp;bmp.LoadBitmap(IDB_BITMAP2);m_brBk.CreatePatternBrush(&a 阅读全文
posted @ 2012-07-17 16:41 DoubleLi 阅读(2616) 评论(0) 推荐(0)

摘要: from:http://blog.csdn.net/leolee82/article/details/6992615windows编程 全屏窗口的创建总结第一种:较简单的方法在ShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);前加如下代码:[cpp] view plaincopyprint?LONGstyle=GetWindowLong(hwnd,GWL_STYLE);//获得窗口风格 style=&~WS_CAPTION&~WS_SIZEBOX;//窗口全屏显示且不可改变大小 SetWindowLong(hwnd,GWL_ST 阅读全文
posted @ 2012-07-17 16:38 DoubleLi 阅读(6363) 评论(0) 推荐(0)

摘要: from:http://blog.csdn.net/leolee82/article/details/6992590先认识一下MFC中的一些和绘图有关的结构体和类 1.点 (1)点结构POINT点数据结构POINT用来表示一点的x、y坐标: typedef struct tagPOINT { LONG x; LONG y; } POINT; (2)点类CPoint 点类CPoint为一个没有基类的独立类,封装了POINT结构,有成员变量x和y 其构造函数有5种: CPoint( ); CPoint( int initX, int initY ); CPoint( POINT initPt ); 阅读全文
posted @ 2012-07-17 16:35 DoubleLi 阅读(8247) 评论(0) 推荐(1)

摘要: from:http://hi.baidu.com/c996387762/blog/item/d1d54b250412602cd40742b2.html首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。 在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样 阅读全文
posted @ 2012-07-17 16:30 DoubleLi 阅读(1102) 评论(0) 推荐(1)

摘要: 画刷类CBrush利用画笔可以画图形的边框,而用画刷就可以在图形内着色。大多数的GDI绘图函数既使用画笔又使用画刷,它们用画笔绘制各种图形的周边,而用画刷填充图形,因而可以用一种颜色和风格去设置画笔,而用另一种颜色和风格去设定画刷,通过一次函数调用就可以绘制出形状复杂的图形。画刷是由CBrush类管理的,创建画刷有两种方法:一种是调用构造函数,另一种是调用相关的成员函数。1.CBrush的构造函数CBrush类的结构函数定义如下:① CBrush( );② CBrush( COLORREF crColor );throw( CResourceException );③ CBrush( int 阅读全文
posted @ 2012-07-17 16:22 DoubleLi 阅读(23567) 评论(0) 推荐(1)

摘要: AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名、窗口是叠加型的、可改变窗口大小等。要修改窗口的缺省风格,需要重载CWnd::PreCreateWindow(CREATESTRUCT& cs)函数,并在其中修改CREATESTRUCT型参数cs。CWnd::PreCreateWindow 函数先于窗口创建函数执行。如果该函数被重载,则窗口创建函数将使用CWnd::PreCreateWindow 函数返回的CREATESTRUCT cs参数所定义的窗口风格来创建窗口;否则使用预定义的窗口风格。CREATESTRUCT结构定义了创建函数创建窗 阅读全文
posted @ 2012-07-17 16:11 DoubleLi 阅读(5776) 评论(1) 推荐(0)

摘要: 问题是这样产生的.在OnEraseBkGnd中,如果你不调用原来缺省 的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, 由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况 下是白刷),而随后你又自己重画背景造成屏幕闪动. 另外一个问题是OnEraseBkGnd不是每次都会被调用的.如果你 调用Invalidate的时候参数为TRUE,那么在OnPaint里面隐含 调用BeginPaint的时候就产生WM_ERASEBKGN 阅读全文
posted @ 2012-07-17 16:07 DoubleLi 阅读(4562) 评论(0) 推荐(0)

摘要: 设置对话框背景颜色及背景图片可在OnCtlColor(),OnEraseBkgnd(),OnPaint()里设置,对话框初始化完毕,显示窗口时按顺序调用OnSize()>OnEraseBkgnd()>OnPaint()>OnCtlColor()。OnEraseBkgnd()中默认调用基类(CFrameWnd)的OnEraseBkgnd(), 用窗口类中注册的Brush绘制背景。因此,绘制窗口背景时最好重写OnEraseBkgnd(),但后面不能调用基类的OnEraseBkgnd()。同时,MSDN关WM_ERASEBKGND消息的说明中有写道,DefWindowProc使用窗 阅读全文
posted @ 2012-07-17 10:48 DoubleLi 阅读(6179) 评论(0) 推荐(1)

摘要: 在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。于是我们就看到了闪烁现象。我们会很自然的想到,避免背景色的填充是最直接的办法。但是那样的话,窗体上会变的一团糟。因为每次绘制图象的时候都没有将原来的图象清除,造 成了图 阅读全文
posted @ 2012-07-17 10:47 DoubleLi 阅读(10533) 评论(0) 推荐(0)