您的位置:首页 > 其它

学习心得~~~Invalidate~~UpdateData~~UpdateWindow

2010-03-14 17:14 369 查看
最近快被逼疯了,所以学习心得也就比较多。

一、CWnd::Invalidate

void Invalidate( BOOL bErase = TRUE );

参数:

bErase
指定是否要擦除更新区域内的背景。
说明:
使CWnd的整个客户区无效。当产生下一个WM_PAINT消息时,客户区被标记为需要重画。也可以在产生WM_PAINT消息之前用ValidateRect或ValidateRgn成员函数使区域有效。
bErase参数指定了在处理更新区域的时候是否要擦除更新区域内的背景。如果bErase为TRUE,则当调用BeginPaint的时候,将擦除背景。如果bErase为FALSE,则背景保持不变。如果对于更新区域的任何部分bErase为TRUE,则整个区域的背景都会被擦除,而不仅是给定的部分。
每当CWnd的更新区域不为空,并且在应用程序的窗口消息队列中没有其它消息时,Windows就发送一条WM_PAINT消息。

 
二、CWnd::UpdateData

BOOL UpdateData( BOOL bSaveAndValidate = TRUE );

返回值:
如果操作成功,则返回非零值;否则返回0。如果bSaveAndValidate
4000
为TRUE,则返回非零值意味着已成功地使数据有效。

参数:


bSaveAndValidate
指明是要初始化对话框(FALSE)还是获取数据(TRUE)的标志。
说明:
调用这个成员函数以初始化对话框中的数据,或者获得并检验对话框数据。
当一个模式对话框被创建时,框架自动在CDialog::OnInitDialog的缺省实现中调用UpdateData,bSaveAndValidate被设为FALSE。这个函数在对话框可见之前被调用。CDialog::OnOK的缺省实现令bSaveAndValidate为TRUE并调用这个成员函数以获得对话框中的数据,如果成功,将关闭对话框(如果在对话框中点击了Cancel按钮,则对话框将被关闭,并不获取数据)。

三、CWnd::UpdateWindow

void UpdateWindow( );

说明:
如果更新区域不为空,则发送一条WM_PAINT消息以更新客户区域。UpdateWindow成员函数直接发送一条WM_PAINT消息,越过应用程序队列。如果更新区域为空,则WM_PAINT不会被发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows 框架