父窗体风格里面加上WS_CLIPCHILDREN然后Invalidate(TRUE)父窗体的时候,子控件就不会刷新了。
如果要刷新的话,用子控件Invalidate来控制刷新。
如果要刷新的话,用子控件Invalidate来控制刷新。
解决方案 »
- CCombobox不刷新的问题
- 新手救助 CreateWindow后,根据消息修改窗口标题
- 求解!!简单问题
- 求助:OpenUrl()在服务方式下运行的问题。。。
- 建了一个空表,为什么用addnew后,然后uodate就出错?代码如下,谢谢
- 在vc中使用SAFEARRAY的问题??急,大侠们一定要帮帮忙啊!!!!
- 关于字体问题 100分送 等ing
- 请教:VC+ADO访问SQL Server2000数据库,怎样分别得到一个数据库的所有用户建的表和系统表?
- 请问怎样获得系统CPU的占用情况?
- 新的32位操作系统EdenOS,只需一秒钟启动 @ http://edenos.myrice.com
- 为什么我做的软件被360报为安全性未知
- 拷贝dll到bat里是什么意思?
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: Add your specialized creation code here
lpCreateStruct->style |= WS_CLIPCHILDREN; return 0;
}子控件Invalidate来控制刷新是这样做吗?
GetDlgItem(IDC_THUMB_1)->Invalidate();
这样没有用,都没有立即去刷新了,不知我的做法是否欠妥,请帮忙示范一下
RedrawWindow看看
GetDlgItem(IDC_THUMB_1 + 7)->RedrawWindow();
这跟直接调用Invalidate()效果是一样的,刷新的是整个dialog对话框而不是某一个控件,如果我理解错了,麻烦您说详细点行末?代码示范一下哦
DrawThumbnails();这个代码很隐含,应该问题来自于这个。
for (int i = 0; i < 9; i++)
{
m_staticThumb[i].RedrawWindow(); //m_staticThumb[i]是分别关联九个控件的CStatic
}
感觉有点别扭,每次RedrawWindow都会跑到onPaint()中吗?
你的做法可能有点问题。
必须找到这9个picture控件的 左上 顶点 和 右下 顶点。
先用GetWindowRect获取picture相对于桌面的位置,然后用ScreenToClient转换为相对于对话框的位置,接着在InvalidateRect这个区域。
请问怎么同时确定九个picture控件的 左上 顶点 和 右下 顶点,GetWindowRect也只能确定一个控件位置呀,然后再InvalidateRect,不知道您的意思是像我上面写的循环那样吗?(循环做九次,有点别扭)能用代码示范下吗?感谢继续关注~
GetDlgItem(IDC_THUMB_1)->GetClientRect(&rect); //IDC_THUMB_1为九个控件中的一个
InvalidateRect(&rect);这样用才能把背景内容给清理:CRect rect;
GetDlgItem(IDC_THUMB_1)->GetWindowRect(&rect);
ScreenToClient(rect);请问GetWindowRect&ScreenToClient==GetClientRect??这两个用法是等价的吗?
先获得相对于屏幕的坐标再转化为客户区的坐标与直接得到客户区坐标这两种做法不一样吗?求详细解释,千万不要把这两个API翻译一遍额,想知道对于我这个问题的这两种做法的区别,针对性的解释下好吗?
GetDlgItem(IDC_THUMB_1)->GetWindowRect(&rect);
ScreenToClient(rect);
InvalidateRect(&rect);还是希望热心人士帮忙解释下上个问题
GetClientRect只是按钮大小。left=0,top=0;
GetWindowRect后,left=200,top=200,ScreenToClient后,left=100,top=100。
是的。GetClientRect获取的只是 大小。
GetWindowRect&ScreenToClient获取的肯定有大小,而且还有相对位置。
GetWindowRect是绝对位置。
假设我自绘透明按钮,在OnPaint中,这个时候先要获取相对位置,copy父窗口此部分区域。但是,绘制自己部分,用GetClientRect就行了。理解 “相对” 。