C 在绘制文本之前刷新窗口中的区域
我在WM_绘画信息的窗口上画文字,在绘制新的文本行之前,是否有任何方法可以刷新该窗口区域,以便删除相同位置的旧文本?您可以先刷新旧文本…您可以先刷新旧文本…您需要调用C 在绘制文本之前刷新窗口中的区域,c,windows,gdi,C,Windows,Gdi,我在WM_绘画信息的窗口上画文字,在绘制新的文本行之前,是否有任何方法可以刷新该窗口区域,以便删除相同位置的旧文本?您可以先刷新旧文本…您可以先刷新旧文本…您需要调用bErase参数设置为TRUE的窗口,以便它将在生成WM_绘制之前擦除自身 HDC hdc = GetDC(NULL); //get windows handle whaterver if urs HRGN hrgn; //get that specific region and repaint it by following
bErase
参数设置为TRUE
的窗口,以便它将在生成WM_绘制之前擦除自身
HDC hdc = GetDC(NULL); //get windows handle whaterver if urs
HRGN hrgn;
//get that specific region and repaint it by following line
hrgn = CreateRectRgn(10, 10, 100, 100);
SelectClipRgn(hDC, hrgn);
PaintDesktop(hDC);
当窗口是静态文本控件时,这通常是必需的,因为当您更改其值时,这些控件不会自动擦除自身
确保您的窗口处理正确,并且窗口类没有空背景画笔,因为这是Invalidate用于执行擦除的机制。您需要调用窗口,并将bErase
参数设置为TRUE
,以便它在生成WM_绘制之前擦除自身
当窗口是静态文本控件时,这通常是必需的,因为当您更改其值时,这些控件不会自动擦除自身
请确保您的窗口处理正确,并且窗口类没有空背景笔刷,因为这是Invalidate用于执行擦除的机制。是的,但当我在其上绘制矩形时,它不会刷新自身。是的,但当我在其上绘制矩形时,它不会刷新自身。