Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在绘制文本之前刷新窗口中的区域_C_Windows_Gdi - Fatal编程技术网

C 在绘制文本之前刷新窗口中的区域

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

我在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 line

hrgn = CreateRectRgn(10, 10, 100, 100);
SelectClipRgn(hDC, hrgn);
PaintDesktop(hDC); 
当窗口是静态文本控件时,这通常是必需的,因为当您更改其值时,这些控件不会自动擦除自身

确保您的窗口处理正确,并且窗口类没有空背景画笔,因为这是Invalidate用于执行擦除的机制。

您需要调用窗口,并将
bErase
参数设置为
TRUE
,以便它在生成WM_绘制之前擦除自身

当窗口是静态文本控件时,这通常是必需的,因为当您更改其值时,这些控件不会自动擦除自身


请确保您的窗口处理正确,并且窗口类没有空背景笔刷,因为这是Invalidate用于执行擦除的机制。

是的,但当我在其上绘制矩形时,它不会刷新自身。是的,但当我在其上绘制矩形时,它不会刷新自身。