关于WM_ERASEBKGND和WM_PAINT的深刻理解

关于WM_ERASEBKGND和WM_PAINT的深刻理解

 

一直以来,对于WM_PAINT和WM_ERASEBKGND消息不是很清楚,从书上和网上找了很多资料,大体上有以下几点说法:
1>WM_PAINT先产生,WM_ERASEBKGND后产生

2.WM_PAINT产生后,在调用BeginPaint时
hdc = BeginPaint(hWnd, &ps); 
如果ps.fErase为true,则BeginPaint会产生WM_ERASEBKGND消息

3.BeginPaint函数用来擦除窗口背景

4.WM_ERASEBKGND用来绘制背景

经过调试、分析,发现上面的说法并不正确。以下是一些测试代码,代码后面附上一些分析。最后总结出几点,可以解释程序中出现的所有关于窗口重绘的问题。
如有不正确的地方,大家可以指正。

为了说明问题,在此不说WM_NCPAINT消息(非客户区消息),只说WM_ERASEBKGND消息和客户区的WM_PAINT消息

//此段代码摘自vc6应用程序向导自动生成的代码,并添加了一些测试代码
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 int wmId, wmEvent;
 PAINTSTRUCT ps;
 HDC hdc;
 TCHAR szHello[MAX_LOADSTRING];
 LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
 
 switch (message)
 {
 case WM_COMMAND:
  wmId    = LOWORD(wParam);
  wmEvent = HIWORD(wParam);
  // Parse the menu selections:
  switch (wmId)
  {
  case IDM_ABOUT:
   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
   break;
  case IDM_EXIT:
   DestroyWindow(hWnd);
   break;
  default:
   return DefWindowProc(hWnd, message, wParam, lParam);
  }
  break;
  case WM_ERASEBKGND: //如果处理了这个消息,则默认消息处理函数不会调用,背景就不会绘制
   {
    static int iCount=0;
    char ch[MAX_PATH];
    sprintf(ch,"%d ---------WM_ERASEBKGND\n",iCount); //这个函数需要包含#include<stdio.h>
    OutputDebugString(ch); //调试时便于观察
    iCount++;
   break;
   }
  case WM_PAINT:
   {
    OutputDebugString("  -------------WM_PAINT\n");
    hdc = BeginPaint(hWnd, &ps); //使无效区域变得有效,并填充ps结构
    // TODO: Add any drawing code here...
    
    //绘制一个蓝色椭圆,ps.rcPaint保存了客户区矩形
    HBRUSH hbrush=::CreateSolidBrush(RGB(0,0,255)); 
    ::SelectObject(hdc,hbrush);
    ::Ellipse(hdc,ps.rcPaint.left,ps.rcPaint.top,ps.rcPaint.right,ps.rcPaint.bottom);
    ::DeleteObject(hbrush);
    
    EndPaint(hWnd, &ps);
    break;
   }
  case WM_LBUTTONDOWN: //调用DefWindowProc擦除客户区背景
   {
    HDC hdc;
    hdc=::GetDC(hWnd);
    WPARAM w=(WPARAM)hdc;
    LPARAM l=0;
    DefWindowProc(hWnd, WM_ERASEBKGND, w, l);
   }
   break;
  case WM_DESTROY:
   PostQuitMessage(0);
   break;
  default:
   return DefWindowProc(hWnd, message, wParam, lParam);
 }
 return 0;
}

 

先说一下程序运行时发现的一些现象:
1.
上面的代码:如果添加了WM_ERASEBKGND消息,里面什么也不做,如下
case WM_ERASEBKGND:
  
  break;

则当程序运行时,如果收到WM_ERASEBKGND消息,则这个switch-case结构中就不会执行默认消息处理函数DefWindowProc,运行时发现,窗口的背景就没有了,即背景为空。
这说明了窗口背景仅仅是由默认的消息处理函数DefWindowProc绘制的。
(注:注册窗口类时,背景设置为白色wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);)


2.
如上面的代码,因为有WM_ERASEBKGND消息,则程序运行时窗口背景为NULL,
但是如果添加了WM_LBUTTONDOWN消息,从里面调用默认窗口消息处理函数,如下
case WM_LBUTTONDOWN:
  {
   HDC hdc;
   hdc=::GetDC(hWnd);
   WPARAM w=(WPARAM)hdc; //变量w作为WM_ERASEBKGND消息的wParam参数,保存了设备环境句柄
   LPARAM l=0;
   DefWindowProc(hWnd, WM_ERASEBKGND, w, l); //调用默认消息处理函数DefWindowProc
  }
  break;
程序运行时,如果用鼠标单击一下窗口客户区,则窗口的背景就会显示!这进一步说明了窗口的背景色是由默认消息处理函数DefWindowProc绘制的。

3.
以上代码,因为添加了WM_ERASEBKGND消息,所以窗口背景是空。
虽然在WM_PAINT消息中有
hdc = BeginPaint(hWnd, &ps);函数的调用,但是窗口背景仍然是空,这说明了BeginPaint函数并不会擦除背景(即用默认画刷绘制窗口背景)。

BeginPaint函数只做了两件事情:
1》使窗口无效区域变得有效,从而使Windows不再发送WM_PAINT消息(直到窗口大小改变等,使窗口再次变得无效)。
(如果窗口一直无效,则Windows会不停地发送WM_PAINT消息)

1》填充PAINTSTRUCT结构。填充这个结构的目的,是让程序员可以根据ps变量中的标志值进行某些操作

4.
调试的时候,发现:当窗口改变大小,或者其它操作使窗口变得无效时,WM_ERASEBKGND消息总是先于WM_PAINT消息发出,而且如果产生WM_ERASEBKGND消息,
则最后一个WM_ERASEBKGND的下一条消息一定是WM_PAINT消息(WM_ERASEBKGND可能会连续产生几次)。WM_ERASEBKGND消息和WM_PAINT消息之间没有其它消息


--------------------------------------------
以下是一些总结

1.窗口背景的擦除(即绘制)

窗口的背景色是由默认的消息处理函数DefWindowProc擦除的(即这个函数使用注册窗口类时使用的背景刷擦除窗口背景)。
什么时候绘制?在窗口函数收到WM_ERASEBKGND消息,DefWindowProc函数以WM_ERASEBKGND为参数,才会绘制窗口背景
(注:当WM_ERASEBKGND消息产生后,窗口一定有一部分变得无效)

2.窗口的无效:

当拖动窗口的一个顶点改变了窗口的大小、窗口由最小化恢复到最大化、窗口的一部分被其它窗口遮住又重新显示、调用MoveWindow函数改变了窗口大小、窗口移动到桌面之外的

部分被拖回重新显示时,窗口就会变得无效。 无效区域是整个客户区,因此默认窗口处理函数DefWindowProc会擦除整个客户区。
(注:拖动窗口标题栏移动窗口,只要窗口没有移动到屏幕之外,那么这两个消息都不产生)

当窗口无效时,Windows会给窗口发出WM_ERASEBKGND消息和WM_PAINT消息,而且WM_ERASEBKGND先发出一次或者几次,紧接着是WM_PAINT


例外:InvalidateRect函数的调用会使窗口变得无效,并产生WM_ERASEBKGND消息和WM_PAINT消息,而WM_ERASEBKGND是否产生取决于参数bErase

void InvalidateRect (
LPCRECT lpRect,
BOOL bErase = TRUE );
当参数bErase为true时,WM_ERASEBKGND消息产生,当bErase为false时WM_ERASEBKGND消息不产生


3.消息的处理过程
当窗口无效时,

先发出WM_ERASEBKGND消息若干次-----------再发出WM_PAINT消息,WM_ERASEBKGND和WM_PAINT之间没有其它消息
WM_ERASEBKGND消息的后面一定是WM_PAINT

1》WM_ERASEBKGND消息的处理:
上面的代码,如果没有添加WM_ERASEBKGND,则默认的消息处理函数DefWindowProc会被调用,此时的DefWindowProc会擦除窗口背景(即绘制背景),并且ps.fErase会为FALSE

如果添加了WM_ERASEBKGND消息,DefWindowProc就不会被调用,则无法擦除窗口背景,并且ps.fErase会为true

2》WM_PAINT的处理
在这个消息中如果调用了hdc = BeginPaint(hWnd, &ps);函数,则此函数只做了两件事:填充ps结构、使窗口重新变得有效

另外DefWindowProc函数也会使窗口变得有效

关于ps.fErase;
这个参数和窗口函数WndProc的返回值有关:
当窗口函数WndProc返回true;则产生WM_PAINT消息时,ps.fErase就为false;表明系统擦除了背景
当窗口函数WndProc返回false;则产生WM_PAINT消息时,ps.fErase就为true;表明系统没有擦除背景

设想一下,当上面的代码中添加了WM_ERASEBKGND消息并在其中直接返回true(这表明系统已经绘制了窗口背景),则ps.fErase就为false
case WM_ERASEBKGND: 
return true; //窗口函数WndProc返回true;

注意返回的真或者假只是让程序员可以看见ps.fErase,并作出自己的代码,与窗口的显示即背景没有关系
有些人说当ps.fErase==true,BeginPaint函数会发送一个WM_ERASEBKGND消息,其实BeginPaint并未发出WM_ERASEBKGND消息

4.自己绘制背景或者系统绘制背景。
如果程序员不想系统擦除背景,而自己想绘制背景,怎么办呢?方法是在WM_ERASEBKGND消息处理中添加自己的绘制代码。
对于WM_ERASEBKGND消息,wParam参数保存了用于绘制的设备环境,lParam不使用。

如上面的示例代码,当添加了WM_ERASEBKGND消息,则switch---case中就不会调用DefWindowProc函数绘制背景。这时,程序员自己就可以添加绘制代码
而在基于MFC的程序中,是这样处理自绘代码的:

BOOL CCeDlg::OnEraseBkgnd(CDC* pDC) //这个函数就是WM_ERASEBKGND的消息处理函数
{
 // TODO: Add your message handler code here and/or call default
//添加自绘代码
...
return TRUE; //返回真,代表着窗口函数的返回值。以便于程序员在WM_PAINT消息中作出相应处理(如果需要)。这里返回时就不会调用下面的默认处理

//下面将调用系统默认的消息处理函数DefWindowProc进行背景的默认绘制。
 return CDialog::OnEraseBkgnd(pDC); //不执行自动生成的这个函数
}

执行这个函数时,提示用户绘制背景,如果用户没有绘制背景,则return CDialog::OnEraseBkgnd(pDC);调用默认的窗口处理函数进行背景的擦除


BOOL CCeDlg::OnEraseBkgnd(CDC* pDC)
{
 // TODO: Add your message handler code here and/or call default
//添加自绘背景代码
 CBitmap m_bitmap;
 BITMAP m_bmInfo;
 m_bitmap.LoadBitmap(IDB_BITMAP1);
 m_bitmap.GetObject(sizeof(m_bmInfo),&m_bmInfo);

 CDC memDC;
 memDC.CreateCompatibleDC(pDC);
 memDC.SelectObject(&m_bitmap);

 GetClientRect(m_rect);
 pDC->StretchBlt(0,0,m_rect.Width(),m_rect.Height(),

&memDC,0,0,m_bmInfo.bmWidth,m_bmInfo.bmHeight,SRCCOPY); //内存拷贝函数。绘制背景
 memDC.DeleteDC();

 return true;//返回真,代表着窗口函数的返回值。以便于程序员在WM_PAINT消息中作出相应处理(如果需要)。这里返回时就不会调用下面的默认处理

//下面将调用系统默认的消息处理函数DefWindowProc进行背景的默认绘制。
 return CDialog::OnEraseBkgnd(pDC); //不执行自动生成的这个函数
}

5.WM_ERASEBKGND消息和WM_PAINT消息的另外一种含义:背景色与前景色

可以这样理解WM_ERASEBKGND消息和WM_PAINT消息:

WM_ERASEBKGND消息用于通知系统或者程序员绘制背景色
WM_PAINT消息用于通知程序员绘制前景色,比如在WM_PAINT中调用TextOut函数输出文本

 

 

 

 

 

 

  •                     <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
                            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#csdnc-thumbsup"></use>
                        </svg><span class="name">点赞</span>
                        <span class="count">2</span>
                        </a></li>
                        <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-csdnc-Collection-G"></use>
                        </svg><span class="name">收藏</span></a></li>
                        <li class="tool-item tool-active is-share"><a href="javascript:;"><svg class="icon" aria-hidden="true">
                            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-csdnc-fenxiang"></use>
                        </svg>分享</a></li>
                        <!--打赏开始-->
                                                <!--打赏结束-->
                                                <li class="tool-item tool-more">
                            <a>
                            <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                            </a>
                            <ul class="more-box">
                                <li class="item"><a class="article-report">文章举报</a></li>
                            </ul>
                        </li>
                                            </ul>
                </div>
                            </div>
            <div class="person-messagebox">
                <div class="left-message"><a href="https://blog.csdn.net/sdeeds">
                    <img src="https://profile.csdnimg.cn/7/3/E/3_sdeeds" class="avatar_pic" username="sdeeds">
                                            <img src="https://g.csdnimg.cn/static/user-reg-year/1x/11.png" class="user-years">
                                    </a></div>
                <div class="middle-message">
                                        <div class="title"><span class="tit"><a href="https://blog.csdn.net/sdeeds" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">sdeeds</a></span>
                                            </div>
                    <div class="text"><span>发布了1 篇原创文章</span> · <span>获赞 2</span> · <span>访问量 1万+</span></div>
                </div>
                                <div class="right-message">
                                            <a href="https://im.csdn.net/im/main.html?userName=sdeeds" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
                        </a>
                                                            <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a>
                                    </div>
                            </div>
                    </div>
    </article>
    
<script>
$(".add-btn").click(function(){
    // $(this).attr("data-url")
    // sessionStorage.setItem("usename", $(this).attr("data-usename")); 
    // sessionStorage.setItem("articleId", $(this).attr("data-articleId"));
    showReport(false,articleTitles,$(this).attr("data-origin_username"),$(this).attr("data-origin_article_id"))
})
$("#blog_detail_zk_collection").click(function(){
    window.csdn.articleCollection()
})
还能输入1000个字符
<div class="comment-list-container">
	<a id="comments"></a>
	<div class="comment-list-box" style="max-height: 231px;"><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="9716354" data-replyname="qq_43342893">      <a target="_blank" href="https://me.csdn.net/qq_43342893"><img src="https://profile.csdnimg.cn/6/1/E/3_qq_43342893" username="qq_43342893" alt="qq_43342893" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://me.csdn.net/qq_43342893"><span class="name ">qq_43342893</span></a><span class="date" title="2019-05-07 18:24:45">7个月前</span><span class="floor-num">#7楼</span><span class="new-comment">谢了,被卡了好久的问题终于搞懂了</span><span class="new-opt-box"><a class="btn btn-link-blue btn-report" data-type="report">举报</a><a class="btn btn-link-blue btn-reply" data-type="reply">回复</a></span></div><div class="comment-like " data-commentid="9716354"><svg t="1569296798904" class="icon " viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5522" width="200" height="200"><path d="M726.016 906.666667h-348.586667a118.016 118.016 0 0 1-116.992-107.904l-29.013333-362.666667A117.589333 117.589333 0 0 1 348.458667 309.333333H384c126.549333 0 160-104.661333 160-160 0-51.413333 39.296-88.704 93.397333-88.704 36.906667 0 71.68 18.389333 92.928 49.194667 26.88 39.04 43.178667 111.658667 12.714667 199.509333h95.530667a117.418667 117.418667 0 0 1 115.797333 136.106667l-49.28 308.522667a180.608 180.608 0 0 1-179.072 152.704zM348.458667 373.333333l-4.48 0.170667a53.461333 53.461333 0 0 0-48.768 57.472l29.013333 362.666667c2.218667 27.52 25.6 49.024 53.205333 49.024h348.544a116.949333 116.949333 0 0 0 115.925334-98.816l49.322666-308.736a53.418667 53.418667 0 0 0-52.650666-61.781334h-144.085334a32 32 0 0 1-28.458666-46.634666c45.909333-89.130667 28.885333-155.434667 11.562666-180.522667a48.981333 48.981333 0 0 0-40.192-21.504c-6.912 0-29.397333 1.792-29.397333 24.704 0 111.317333-76.928 224-224 224h-35.541333zM170.624 906.666667a32.042667 32.042667 0 0 1-31.872-29.44l-42.666667-533.333334a32.042667 32.042667 0 0 1 29.354667-34.474666c17.066667-1.408 33.024 11.733333 34.432 29.354666l42.666667 533.333334a32.042667 32.042667 0 0 1-31.914667 34.56z" p-id="5523"></path></svg><span></span></div></div></li></ul><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="4774469" data-replyname="wuyan233">      <a target="_blank" href="https://me.csdn.net/wuyan233"><img src="https://profile.csdnimg.cn/8/4/C/3_wuyan233" username="wuyan233" alt="wuyan233" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://me.csdn.net/wuyan233"><span class="name ">ahahaaaab</span></a><span class="date" title="2015-02-02 18:18:52">4年前</span><span class="floor-num">#6楼</span><span class="new-comment">解释的很清楚很详细,谢了!</span><span class="new-opt-box"><a class="btn btn-link-blue btn-report" data-type="report">举报</a><a class="btn btn-link-blue btn-reply" data-type="reply">回复</a></span></div><div class="comment-like " data-commentid="4774469"><svg t="1569296798904" class="icon " viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5522" width="200" height="200"><path d="M726.016 906.666667h-348.586667a118.016 118.016 0 0 1-116.992-107.904l-29.013333-362.666667A117.589333 117.589333 0 0 1 348.458667 309.333333H384c126.549333 0 160-104.661333 160-160 0-51.413333 39.296-88.704 93.397333-88.704 36.906667 0 71.68 18.389333 92.928 49.194667 26.88 39.04 43.178667 111.658667 12.714667 199.509333h95.530667a117.418667 117.418667 0 0 1 115.797333 136.106667l-49.28 308.522667a180.608 180.608 0 0 1-179.072 152.704zM348.458667 373.333333l-4.48 0.170667a53.461333 53.461333 0 0 0-48.768 57.472l29.013333 362.666667c2.218667 27.52 25.6 49.024 53.205333 49.024h348.544a116.949333 116.949333 0 0 0 115.925334-98.816l49.322666-308.736a53.418667 53.418667 0 0 0-52.650666-61.781334h-144.085334a32 32 0 0 1-28.458666-46.634666c45.909333-89.130667 28.885333-155.434667 11.562666-180.522667a48.981333 48.981333 0 0 0-40.192-21.504c-6.912 0-29.397333 1.792-29.397333 24.704 0 111.317333-76.928 224-224 224h-35.541333zM170.624 906.666667a32.042667 32.042667 0 0 1-31.872-29.44l-42.666667-533.333334a32.042667 32.042667 0 0 1 29.354667-34.474666c17.066667-1.408 33.024 11.733333 34.432 29.354666l42.666667 533.333334a32.042667 32.042667 0 0 1-31.914667 34.56z" p-id="5523"></path></svg><span></span></div></div></li></ul><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="2341213" data-replyname="chendong152">      <a target="_blank" href="https://me.csdn.net/chendong152"><img src="https://profile.csdnimg.cn/F/B/7/3_chendong152" username="chendong152" alt="chendong152" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://me.csdn.net/chendong152"><span class="name ">chendong152</span></a><span class="date" title="2012-08-17 15:19:11">7年前</span><span class="floor-num">#5楼</span><span class="new-comment">一定要顶。辛苦是肯定的,鼓励是必须的,效果是明显的。结果是....不知道的。哈哈</span><span class="new-opt-box"><a class="btn btn-link-blue btn-report" data-type="report">举报</a><a class="btn btn-link-blue btn-reply" data-type="reply">回复</a></span></div><div class="comment-like " data-commentid="2341213"><svg t="1569296798904" class="icon " viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5522" width="200" height="200"><path d="M726.016 906.666667h-348.586667a118.016 118.016 0 0 1-116.992-107.904l-29.013333-362.666667A117.589333 117.589333 0 0 1 348.458667 309.333333H384c126.549333 0 160-104.661333 160-160 0-51.413333 39.296-88.704 93.397333-88.704 36.906667 0 71.68 18.389333 92.928 49.194667 26.88 39.04 43.178667 111.658667 12.714667 199.509333h95.530667a117.418667 117.418667 0 0 1 115.797333 136.106667l-49.28 308.522667a180.608 180.608 0 0 1-179.072 152.704zM348.458667 373.333333l-4.48 0.170667a53.461333 53.461333 0 0 0-48.768 57.472l29.013333 362.666667c2.218667 27.52 25.6 49.024 53.205333 49.024h348.544a116.949333 116.949333 0 0 0 115.925334-98.816l49.322666-308.736a53.418667 53.418667 0 0 0-52.650666-61.781334h-144.085334a32 32 0 0 1-28.458666-46.634666c45.909333-89.130667 28.885333-155.434667 11.562666-180.522667a48.981333 48.981333 0 0 0-40.192-21.504c-6.912 0-29.397333 1.792-29.397333 24.704 0 111.317333-76.928 224-224 224h-35.541333zM170.624 906.666667a32.042667 32.042667 0 0 1-31.872-29.44l-42.666667-533.333334a32.042667 32.042667 0 0 1 29.354667-34.474666c17.066667-1.408 33.024 11.733333 34.432 29.354666l42.666667 533.333334a32.042667 32.042667 0 0 1-31.914667 34.56z" p-id="5523"></path></svg><span></span></div></div></li></ul><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="2286788" data-replyname="huangdi7922">      <a target="_blank" href="https://me.csdn.net/huangdi7922"><img src="https://profile.csdnimg.cn/6/B/9/3_huangdi7922" username="huangdi7922" alt="huangdi7922" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://me.csdn.net/huangdi7922"><span class="name ">皇帝</span></a><span class="date" title="2012-07-17 10:17:28">7年前</span><span class="floor-num">#4楼</span><span class="new-comment">支持研究,但是好多语句不通</span><span class="new-opt-box"><a class="btn btn-link-blue btn-report" data-type="report">举报</a><a class="btn btn-link-blue btn-reply" data-type="reply">回复</a></span></div><div class="comment-like " data-commentid="2286788"><svg t="1569296798904" class="icon " viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5522" width="200" height="200"><path d="M726.016 906.666667h-348.586667a118.016 118.016 0 0 1-116.992-107.904l-29.013333-362.666667A117.589333 117.589333 0 0 1 348.458667 309.333333H384c126.549333 0 160-104.661333 160-160 0-51.413333 39.296-88.704 93.397333-88.704 36.906667 0 71.68 18.389333 92.928 49.194667 26.88 39.04 43.178667 111.658667 12.714667 199.509333h95.530667a117.418667 117.418667 0 0 1 115.797333 136.106667l-49.28 308.522667a180.608 180.608 0 0 1-179.072 152.704zM348.458667 373.333333l-4.48 0.170667a53.461333 53.461333 0 0 0-48.768 57.472l29.013333 362.666667c2.218667 27.52 25.6 49.024 53.205333 49.024h348.544a116.949333 116.949333 0 0 0 115.925334-98.816l49.322666-308.736a53.418667 53.418667 0 0 0-52.650666-61.781334h-144.085334a32 32 0 0 1-28.458666-46.634666c45.909333-89.130667 28.885333-155.434667 11.562666-180.522667a48.981333 48.981333 0 0 0-40.192-21.504c-6.912 0-29.397333 1.792-29.397333 24.704 0 111.317333-76.928 224-224 224h-35.541333zM170.624 906.666667a32.042667 32.042667 0 0 1-31.872-29.44l-42.666667-533.333334a32.042667 32.042667 0 0 1 29.354667-34.474666c17.066667-1.408 33.024 11.733333 34.432 29.354666l42.666667 533.333334a32.042667 32.042667 0 0 1-31.914667 34.56z" p-id="5523"></path></svg><span></span></div></div></li></ul><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="2261820" data-replyname="x313695373">      <a target="_blank" href="https://me.csdn.net/x313695373"><img src="https://profile.csdnimg.cn/7/9/C/3_x313695373" username="x313695373" alt="x313695373" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://me.csdn.net/x313695373"><span class="name ">x313695373</span></a><span class="date" title="2012-06-21 15:52:14">7年前</span><span class="floor-num">#3楼</span><span class="new-comment">楼主,请教个问题:

我在用带滚动条的窗口时,在窗口的上部一直会需要绘制标题栏,但是在收到WM_PAINT消息时,它本身对可以绘制的区域有限制,导致我画出来的标题栏无法显示,因为使用的是ScrollWindow,标题部分用下部分的窗口数据取代。现在我想知道有没有什么方法可以增加无效区域,让每次重绘时,标题栏都可以显示。您要有想法我可以发给您测试代码举报回复


  • 上一页
  • 1
  • 下一页




<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_59" data-pid="59"><script type="text/javascript">
(function() {
    var s = "_" + Math.random().toString(36).slice(2);
    document.write('<div style="" id="' + s + '"></div>');
    (window.slotbydup = window.slotbydup || []).push({
        id: "u3491668",
        container:  s
    });
})();

WM_ERASEBKGND

07-10 阅读数 520

MFC消息范例 WM_ERASEBKGND 博文 来自: 路楷的专栏

关于WM_ERASEBKGNDWM_PAINT深刻理解 - TMS_LI的专栏 - CSDN博客

10-13

WM_PAINTWM_ERASEBKGND消息的深入分析 - qq_436281..._CSDN博客

10-8

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=ScfnJLvAHDnctnoHLpEicpAUSXEUHnXAniASQbtHAibbLyLmtbLiXEbHQJWiSDpEJbmnStcbEmcXnpSAQEEmpvHcAEbpnnJbvbiQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fbundled%2Fdetail%2F49%3Futm_source%3Dblogfeed1_lg&amp;timestamp=1573805051384&amp;signature=aca9f65c554479a88e8ff163eea7930322ad522b&amp;adBlockFlag=1" target="_blank" title="程序员连拿3份Offer,每份工资竟超出原来薪资5万,这几点分享给你!"><h4 class="text-truncate oneline" style="width: 802px;">程序员连拿3份Offer,每份工资竟超出原来薪资5万,这几点分享给你!</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=ScfnJLvAHDnctnoHLpEicpAUSXEUHnXAniASQbtHAibbLyLmtbLiXEbHQJWiSDpEJbmnStcbEmcXnpSAQEEmpvHcAEbpnnJbvbiQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fbundled%2Fdetail%2F49%3Futm_source%3Dblogfeed1_lg&amp;timestamp=1573805051384&amp;signature=aca9f65c554479a88e8ff163eea7930322ad522b&amp;adBlockFlag=1" target="_blank" title="程序员连拿3份Offer,每份工资竟超出原来薪资5万,这几点分享给你!"><span class="desc oneline">作为一名老码农!Python 116K 超过 C++, 薪酬排行第一</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=ScfnJLvAHDnctnoHLpEicpAUSXEUHnXAniASQbtHAibbLyLmtbLiXEbHQJWiSDpEJbmnStcbEmcXnpSAQEEmpvHcAEbpnnJbvbiQ&amp;adBlockFlag=1"></div></div>
Hook捕获WM_PAINT消息时遇到的问题,望大家帮忙,谢谢
04-02

我的目的:在一个软件的视图窗口中添加个网格。 我的思路:用钩子捕获这个窗口的wm_paint消息,然后在钩子过程函数中画这个网格。 我的问题: 1、用QQ的聊天窗口测试的时候,可以画出网格了,但更改为 论坛

关于BeginPaint和WM_ERASEBKGND - daojin505的专栏 - CSDN博客

10-14

WM_ERASEBKGNDWM_PAINT - xbgprogrammer的专栏

12-12

		<div class="recommend-item-box blog-expert-recommend-box" style="display: block;">
		<div class="d-flex">
			<div class="blog-expert-recommend">
				<div class="blog-expert">
					<div class="blog-expert-flexbox" data-report-view="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/lvwenshuai" target="_blank"><img src="https://profile.csdnimg.cn/6/3/B/3_lvwenshuai" username="lvwenshuai" alt="lvwenshuai" title="lvwenshuai"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="lvwenshuai" data-nick="lvwenshuai">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/lvwenshuai" target="_blank"><h5 class="oneline" title="lvwenshuai">lvwenshuai</h5></a></span>  <p></p><p class="article-num" title="102篇文章"> 102篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/wangyao1052" target="_blank"><img src="https://profile.csdnimg.cn/D/A/E/3_wangyao1052" username="wangyao1052" alt="HisinWang" title="HisinWang"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="wangyao1052" data-nick="HisinWang">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/wangyao1052" target="_blank"><h5 class="oneline" title="HisinWang">HisinWang</h5></a></span>  <p></p><p class="article-num" title="226篇文章"> 226篇文章</p><p class="article-num" title="排名:6000+"> 排名:6000+</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/hot_flygui" target="_blank"><img src="https://profile.csdnimg.cn/D/6/E/3_hot_flygui" username="hot_flygui" alt="hot_flygui" title="hot_flygui"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="hot_flygui" data-nick="hot_flygui">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/hot_flygui" target="_blank"><h5 class="oneline" title="hot_flygui">hot_flygui</h5></a></span>  <p></p><p class="article-num" title="10篇文章"> 10篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/coolboylai2" target="_blank"><img src="https://profile.csdnimg.cn/3/9/B/3_coolboylai2" username="coolboylai2" alt="ChampionLai" title="ChampionLai"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="coolboylai2" data-nick="ChampionLai">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/sdeeds/article/details/6859530&quot;}"><a href="https://blog.csdn.net/coolboylai2" target="_blank"><h5 class="oneline" title="ChampionLai">ChampionLai</h5></a></span>  <p></p><p class="article-num" title="80篇文章"> 80篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div></div>
				</div>
			</div>
		</div>
	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/gaosen_bit/article/details/2310475?utm_source=blogxgwz2&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;5&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/gaosen_bit/article/details/2310475?utm_source=blogxgwz2&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;5&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/gaosen_bit/article/details/2310475?utm_source=blogxgwz2&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:4,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/gaosen_bit/article/details/2310475?utm_source=blogxgwz2&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:4,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn.net/gaosen_bit/article/details/2310475?utm_source=blogxgwz2" target="_blank">              		<h4 class="text-truncate oneline" style="width: 766px;">处理<em>WM_ERASEBKGND</em>消息的实用方法 - gaosen_bit的专栏 - CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">10-28</span>                    </p>                  </div>                </a>            	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/h_h_w/article/details/40936549&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;6&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/h_h_w/article/details/40936549&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;6&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/h_h_w/article/details/40936549&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:5,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/h_h_w/article/details/40936549&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:5,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn.net/h_h_w/article/details/40936549" target="_blank">              		<h4 class="text-truncate oneline" style="width: 766px;"><em>WM_ERASEBKGND</em>消息及位图背景与透明的实现 - h_h_w的专栏</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">12-11</span>                    </p>                  </div>                </a>            	</div>
花了20分钟,给女朋友们写了一个web版群聊程序

11-28 阅读数 3万+

参考博客[1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example 博文

WM_ERASEBKGND - K7的专栏 - CSDN博客

10-27

WM_PAINTWM_ERASEBKGND 消息的区别 . - philips的..._CSDN博客

10-19

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=AJbLpAJibciEbfvHDtEpnDyJEStHncEnnbALEtifbQvAbHntpSbXcSAHSJmtptJSLfmHJQWnpbpcfcbJbynEtfAcvHEpcEvEpEtQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fcombo%2Fdetail%2F1473%3Futm_source%3Dfeedblog&amp;timestamp=1574923774485&amp;signature=de4276574e6fdd29006608cac47252397c09e73e&amp;adBlockFlag=1" target="_blank" title="程序员的遗憾:忽视数学必定后悔!"><h4 class="text-truncate oneline" style="width: 802px;">程序员的遗憾:忽视数学必定后悔!</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=AJbLpAJibciEbfvHDtEpnDyJEStHncEnnbALEtifbQvAbHntpSbXcSAHSJmtptJSLfmHJQWnpbpcfcbJbynEtfAcvHEpcEvEpEtQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fcombo%2Fdetail%2F1473%3Futm_source%3Dfeedblog&amp;timestamp=1574923774485&amp;signature=de4276574e6fdd29006608cac47252397c09e73e&amp;adBlockFlag=1" target="_blank" title="程序员的遗憾:忽视数学必定后悔!"><span class="desc oneline">如果你没有抓住机会学习数学,迟早有一天会后悔!</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=AJbLpAJibciEbfvHDtEpnDyJEStHncEnnbALEtifbQvAbHntpSbXcSAHSJmtptJSLfmHJQWnpbpcfcbJbynEtfAcvHEpcEvEpEtQ&amp;adBlockFlag=1"></div></div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/zsc2014030403015/article/details/49433135&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;9&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/zsc2014030403015/article/details/49433135&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;9&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/zsc2014030403015/article/details/49433135&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:8,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/zsc2014030403015/article/details/49433135&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:8,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn.net/zsc2014030403015/article/details/49433135" target="_blank">              		<h4 class="text-truncate oneline" style="width: 766px;"><em>WM_PAINT</em>与<em>WM_ERASEBKGND</em>补充 - 梧桐下的四叶草 - CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">11-11</span>                    </p>                  </div>                </a>            	</div>
SDK问题?消息WM_ERASEBKGND的处理,能解释一下背景的处理吗?问题在下面,谢谢!
07-20

// 程序使用MFC头文件,须MFC支持! #include "afxwin.h" #include "resource.h"// 资源 //#include "sysmets.h" LRESULT 论坛

GetMessage()与PeekMessage(),以及WM_PAINT消息相关

11-16 阅读数 10

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...... 博文 来自: weixin_34125592的博客

关于WM_ERASEBKGND消息,避免了闪烁,但是不理解
10-16

我的程序需要不断的刷新窗口,我也知道用内存设备描述表来缓冲,但是屏幕还是在闪烁 我就加了两行语句 case WM_ERASEBKGND: return 0; 然后闪烁就消失了,这是为什么啊 论坛

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=ctQpJpAnnniQAHnJcAJJEnbiADbbyHcDiAAiLfUtLHnXAJDiHLbJivomHiQtWtAEcbnmntcbEAonntnUomtbiSASJmAJiJbHSDQQ&amp;k=AI&amp;dest=https%3A%2F%2Fedu.csdn.net%2Ftopic%2Fai30%3Futm_source%3Dblogfeed2&amp;timestamp=1573805049681&amp;signature=160f4cb6a8950bb82c66efb0179612e4ec3cdb18&amp;adBlockFlag=1" target="_blank" title="做Java半年,挣的不如AI 1个月?真假!第二句泪目.."><h4 class="text-truncate oneline" style="width: 802px;">做Java半年,挣的不如AI 1个月?真假!第二句泪目..</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=ctQpJpAnnniQAHnJcAJJEnbiADbbyHcDiAAiLfUtLHnXAJDiHLbJivomHiQtWtAEcbnmntcbEAonntnUomtbiSASJmAJiJbHSDQQ&amp;k=AI&amp;dest=https%3A%2F%2Fedu.csdn.net%2Ftopic%2Fai30%3Futm_source%3Dblogfeed2&amp;timestamp=1573805049681&amp;signature=160f4cb6a8950bb82c66efb0179612e4ec3cdb18&amp;adBlockFlag=1" target="_blank" title="做Java半年,挣的不如AI 1个月?真假!第二句泪目.."><span class="desc oneline">2019是整个互联网行业加速洗牌的一年,互联网大佬快速入局AI领域,你怎么看?</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=AI&amp;m=ctQpJpAnnniQAHnJcAJJEnbiADbbyHcDiAAiLfUtLHnXAJDiHLbJivomHiQtWtAEcbnmntcbEAonntnUomtbiSASJmAJiJbHSDQQ&amp;adBlockFlag=1"></div></div>
一个老外关于 WM_CTLCOLOR,WM_ERASEBKGND给出的结论
03-20

一个老外关于 WM_CTLCOLOR,WM_ERASEBKGND给出的结论: 结论是同是在wm_erasebkgnd,wm_ctlcolor里修改对话框的背景颜色引起的问题 Default imple 论坛

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=LEcbftnSvLpibHSDAiJDpiJypHpcfLcnSJbUbHtpAAXJpLUHbnELEJLmtpAvybnpLLHQpbWtcbtLptDifoLSDctEiDyHEcLQEJnQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fcombo%2Fdetail%2F1473%3Futm_source%3Dblogfeed2&amp;timestamp=1575356069198&amp;signature=d5e2691ffb59978d02538008ff96970ac64d6855&amp;adBlockFlag=1" target="_blank" title="热议:程序员要不要学数学?我被结果整懵了"><h4 class="text-truncate oneline" style="width: 802px;">热议:程序员要不要学数学?我被结果整懵了</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=LEcbftnSvLpibHSDAiJDpiJypHpcfLcnSJbUbHtpAAXJpLUHbnELEJLmtpAvybnpLLHQpbWtcbtLptDifoLSDctEiDyHEcLQEJnQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fcombo%2Fdetail%2F1473%3Futm_source%3Dblogfeed2&amp;timestamp=1575356069198&amp;signature=d5e2691ffb59978d02538008ff96970ac64d6855&amp;adBlockFlag=1" target="_blank" title="热议:程序员要不要学数学?我被结果整懵了"><span class="desc oneline">我经常在后台收到各种各样的问题,有一个问题一直被问起:程序员要不要学数学?</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=LEcbftnSvLpibHSDAiJDpiJypHpcfLcnSJbUbHtpAAXJpLUHbnELEJLmtpAvybnpLLHQpbWtcbtLptDifoLSDctEiDyHEcLQEJnQ&amp;adBlockFlag=1"></div></div>
还是这个WM_ERASEBKGNDWM_PAINT的问题,重绘ING
12-10

之前觉得已经理解了,但怎么理论和实践就是有差距呢, 原因如下: LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lpa 论坛

Hook消息WM_PAINT的时候,钩子类型确切的是用哪个?
04-18

WH_CALLWNDPROC / WH_GETMESSAGE还是别的?我都用过了,总是拦截不到。 是不是WH_GETMESSAGE的过滤函数名一定要是GetMsgProc?不一定吧? 搜索了一下,很多 论坛

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=cQEQHtciiDAEAEtyLLAHAcbEfELviAAQtHELXbJpfLStHpitSLotQtbnLLfSJLHQpWcQEEQvSLSSUbLAEXActobHSAicLnQbSbLQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Ftopic%2Fpython115%3Futm_source%3Dblogfeed5&amp;timestamp=1576131949153&amp;signature=ddaf34df8950e0859ba2ff9c655eaea62dac469f&amp;adBlockFlag=1" target="_blank" title="初学编程,我为什么建议你选择Python?"><h4 class="text-truncate oneline" style="width: 802px;">初学编程,我为什么建议你选择Python?</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=cQEQHtciiDAEAEtyLLAHAcbEfELviAAQtHELXbJpfLStHpitSLotQtbnLLfSJLHQpWcQEEQvSLSSUbLAEXActobHSAicLnQbSbLQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Ftopic%2Fpython115%3Futm_source%3Dblogfeed5&amp;timestamp=1576131949153&amp;signature=ddaf34df8950e0859ba2ff9c655eaea62dac469f&amp;adBlockFlag=1" target="_blank" title="初学编程,我为什么建议你选择Python?"><span class="desc oneline">PYPL编程语成为最受欢迎的编程语言,这是为什么?</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=cQEQHtciiDAEAEtyLLAHAcbEfELviAAQtHELXbJpfLStHpitSLotQtbnLLfSJLHQpWcQEEQvSLSSUbLAEXActobHSAicLnQbSbLQ&amp;adBlockFlag=1"></div></div>
WM_ERASEBKGND的返回值
11-26

WM_ERASEBKGND的返回值: Return value Type: LRESULT An application should return nonzero if it erases the 论坛

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=ELinittAEnSJcQvSHEtcJSJbcbEypHcSDDASJttEEiScpHbAEXnLvLiJHvtSyvnLSHQtWQAAoJtbbcLiycXXAbEbvpbHStcQJSEQ&amp;k=&amp;dest=https%3A%2F%2Fmall.csdn.net%2Fv2%2F%23%2Fproduct%2F1586&amp;timestamp=1573805049461&amp;signature=70dc115ab9b2ca70b6fcc0edf0a8a7187e4a2879&amp;adBlockFlag=1" target="_blank" title="一本可陪伴一辈子的笔记本"><h4 class="text-truncate oneline" style="width: 802px;">一本可陪伴一辈子的笔记本</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=ELinittAEnSJcQvSHEtcJSJbcbEypHcSDDASJttEEiScpHbAEXnLvLiJHvtSyvnLSHQtWQAAoJtbbcLiycXXAbEbvpbHStcQJSEQ&amp;k=&amp;dest=https%3A%2F%2Fmall.csdn.net%2Fv2%2F%23%2Fproduct%2F1586&amp;timestamp=1573805049461&amp;signature=70dc115ab9b2ca70b6fcc0edf0a8a7187e4a2879&amp;adBlockFlag=1" target="_blank" title="一本可陪伴一辈子的笔记本"><span class="desc oneline">可擦可写,可循环利用,支持OCR识别,让你的笔记本变得智能</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=ELinittAEnSJcQvSHEtcJSJbcbEypHcSDDASJttEEiScpHbAEXnLvLiJHvtSyvnLSHQtWQAAoJtbbcLiycXXAbEbvpbHStcQJSEQ&amp;adBlockFlag=1"></div></div>
除了wm_erasebkgnd会擦除背景,还有什么消息会擦出背景
02-04

wm_create: getdc movetoex lineto releasedc return 0; break; wm_erasebkgnd: //这里特殊处理了 return 1; //简单的 论坛

wm_paint和wm_ncpaint
10-20

我在wm_paint消息里面用下面代码在NC上写了一行文字 GetClientRect(hWnd, &ClientRect); FillRect(hdc, &ClientRect, CreateBru 论坛

<div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 852px;"><link rel="stylesheet" href="https://www.csdn.net/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=bcApfbJAvJJbHDLcUiiHicUfELALncbLEJHEitXtALSEXHJLSAynvAmHQStESAiLpWSinnttQmAyfSiDLvJQALbtEpiLXEHtctQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fcourse%2Fdetail%2F26109%3Futm_source%3Dblogfeed_pc&amp;timestamp=1573805051036&amp;signature=1602261e38c44490cd4a7a4a6aae43f6618ae497&amp;adBlockFlag=1" target="_blank" title="4个实战项目,彻底掌握深度学习!"><h4 class="text-truncate oneline" style="width: 802px;">4个实战项目,彻底掌握深度学习!</h4></a><p class="content" style="width: 852px;"><a href="https://kunyu.csdn.net?d=2&amp;m=bcApfbJAvJJbHDLcUiiHicUfELALncbLEJHEitXtALSEXHJLSAynvAmHQStESAiLpWSinnttQmAyfSiDLvJQALbtEpiLXEHtctQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn.net%2Fcourse%2Fdetail%2F26109%3Futm_source%3Dblogfeed_pc&amp;timestamp=1573805051036&amp;signature=1602261e38c44490cd4a7a4a6aae43f6618ae497&amp;adBlockFlag=1" target="_blank" title="4个实战项目,彻底掌握深度学习!"><span class="desc oneline">10小时玩转当前流行的深度学习框架Keras</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=bcApfbJAvJJbHDLcUiiHicUfELALncbLEJHEitXtALSEXHJLSAynvAmHQStESAiLpWSinnttQmAyfSiDLvJQALbtEpiLXEHtctQQ&amp;adBlockFlag=1"></div></div>
史上最全的mysql基础教程

10-28 阅读数 3万+

启动与停止

启动mysql服务
sudo /usr/local/mysql/support-files/mysql.server start
停止mysql服务
sudo /usr/loc…


博文



<div class="recommend-item-box recommend-recommend-box"><div id="_44c4j1dzbec" style=""><iframe width="900" frameborder="0" height="90" scrolling="no" src="https://rabc2.iteye.com/tgcwer?ros=_R&amp;gsn=_RR&amp;ns=LUV_SXXZ&amp;vde=8KKGJ0U-0Td0Td2CF70y3J4E0yE5K0TdJ4554J0Td1IK93C50Td45K19CJ0TdXZW_WUR&amp;zcs=TW_4R5UXRTWX34XT_SRYT1S56W_SRUYY&amp;zc=SSSYTOU_Y&amp;kxd=S&amp;zcc=SUZUOSVSWT&amp;nsc=R&amp;kbs=T&amp;zmc=SUZUOYST&amp;nbs=R&amp;ohzc=SSSRRT,SSRRSS&amp;mom=srdzZ&amp;nks=S&amp;nm=U&amp;zsc=zSOzS&amp;ndw=frkjynmqr&amp;dzb=SWYXSXUTXRTVY&amp;zbyd=T&amp;zkb=SVVROZXR&amp;rm4=l90c&amp;aj8=s95n9&amp;7x6=if1v8&amp;x81=1nsmn&amp;4z7=4koum&amp;swt=1"></iframe></div><script type="text/javascript" src="//rabc1.iteye.com/production/res/rxjg.js?pkcgstj=jm"></script></div>
中国麻将:世界上最早的区块链项目

10-29 阅读数 5万+

中国麻将:世界上最早的区块链项目

最近区块链这个玩意又被市场搞的很是火热,相信大部分人都不太清楚这玩意到底是怎么样的一个概念,它来了,它来了,它到底是啥~ 国家都开始发文支持了,下面是一个通俗易懂的…


博文



比特币原理详解

10-29 阅读数 4万+

一、什么是比特币

比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是…


博文



根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。

所谓的兼职职位众…


博文



<div class="recommend-item-box recommend-recommend-box"><div id="_eq07w3daoug" style=""><ins class="txxfbmxf" style="width:0px;height:0px;cursor:auto;"></ins><iframe width="900" frameborder="0" height="90" scrolling="no" src="https://rabc2.iteye.com/qxyukufvb?ros=_R&amp;gsn=_RR&amp;ns=LUV_SXXZ&amp;vde=8KKGJ0U-0Td0Td2CF70y3J4E0yE5K0TdJ4554J0Td1IK93C50Td45K19CJ0TdXZW_WUR&amp;zcs=TW_4R5UXRTWX34XT_SRYT1S56W_SRUYY&amp;zmc=SUZUOYST&amp;nsc=R&amp;nm=U&amp;zsc=zSOzS&amp;zc=SSWZTOU_Y&amp;ndw=frkjynmqr&amp;nks=T&amp;zkb=SVVROZXR&amp;kxd=S&amp;mom=srdzZ&amp;dzb=SWYXSXUTXRTVY&amp;nbs=S&amp;zbyd=T&amp;zcc=SUZUOSVSWT&amp;ohzc=SSSRRT,SSRRSS&amp;kbs=T&amp;mg10=2ixd&amp;swt=1"></iframe></div><script type="text/javascript" src="//rabc1.iteye.com/production/res/rxjg.js?pkcgstj=jm"></script></div>

那…


博文



数据库优化 - SQL优化

11-01 阅读数 1万+

从一个示例入手,带你一步一步掌握SQL优化的技巧! 博文

Java中List集合介绍(炒鸡详细呦)

11-04 阅读数 1342

Java中List集合介绍(炒鸡详细呦) 1,Java集合介绍

作为一个程序猿,Java集合类可以说是我们在工作中运用最多、最频繁的类。相比于数组(Array)来说,集合类的长度可变,更加方便开发。…


博文



刷了几千道算法题,这些我私藏的刷题网站都在这里了!

11-08 阅读数 4万+

遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活…

然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交…


博文



2019工程伦理慕课答案(2019秋)习题及期末答案

11-09 阅读数 1万+

第一章习题(下) 单选题 (1/1 point) 下列哪一项不是工程与技术的区别

内容和性质
目的
活动主体
任务、对象和思维方式

单选题 (1/1 point)
下列…


博文



JavaScript 为什么能活到现在?

11-08 阅读数 1万+

作者 | 司徒正美

责编 |郭芮

出品 | CSDN(ID:CSDNnews)

JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用Ja…


博文



《吊打面试官》系列-Redis终章_凛冬将至 FPX_新王登基

11-11 阅读数 4127

你知道的越多,你不知道的越多 点赞再看,养成习惯

前言
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个…


博文



YouTube排名第一的励志英文演讲《Dream(梦想)》

11-12 阅读数 2万+

Idon’t know what that dream is that you have, I don't care how disappointing it might have been as y... 博文

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

11-13 阅读数 4万+

一、垃圾文字生成器介绍

最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。

项目中文名:狗屁不通文章生成器
项目英文名:BullshitGenerator
根据作…


博文



Java世界最常用的工具类库

11-20 阅读数 1万+

Apache Commons Apache Commons有很多子项目 Google Guava 参考博客

博文
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址

11-17 阅读数 4万+

第一幕:缘起

听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员……

996程序员做的梦:

第一场:团队招募

为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是…


博文



本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法…


博文



小白都能看得懂的java虚拟机内存模型

11-26 阅读数 7749

目录

一、虚拟机

二、虚拟机组成

1.栈

栈帧

2.程序计数器

3.方法区

对象组成

4.本地方法栈

5.堆

GC

GC案例

一、虚拟机

同样的java代码在不…


博文



【Java面试官】史上最全的JAVA专业术语面试100问

11-30 阅读数 2万+

春风如贵客,一到便繁华。各位看官点赞再看,养成好习惯(●´∀`●)

gitee上已经开源https://gitee.com/Li-Ren/blog里面有一线大厂面试点脑图,欢迎Star和PR你认为…


博文



27 个提升开发幸福度的 VsCode 插件

11-20 阅读数 1万+

作者:Jsmanifest 译者:前端小智 来源:Medium

Visual Studio Code(也称为VSCode)是一种轻量级但功能强大的跨平台源代码编辑器, 借助对TypeScript …


博文



腾讯“疯狂”开源!

11-20 阅读数 1万+

作者 | 马超

责编 | 胡巍巍

出品 | CSDN(ID:CSDNnews)

近日,腾讯自研的万亿级分布式消息中间件TubeMQ正式开源,并捐赠给Apache基金会,成为基金会官方认可的Inc…


博文



so easy! 10行代码写个"狗屁不通"文章生成器

11-20 阅读数 2万+

前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。

背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法

不过,当我看了源代码之后…


博文



MySQL数据库总结

11-25 阅读数 9616

一、数据库简介

数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。
典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。
关系型数据库:使用关系模型把数据…


博文



Java生成随机图片验证码

11-21 阅读数 5307

今天跟大佬学了java随机生成验证码,

开心Ing,

激动ing,

前台html代码

&lt;div style=“margin-top: 50px;”&gt;



博文



                <div class="recommend-item-box type_hot_word">
                <div class="content clearfix" style="width: 852px;">
                    <div class="float-left">
                                                                            <span>
                            <a href="https://blog.csdn.net/yilovexing/article/details/80577510" target="_blank">
                            python</a>
                        </span>
                                                    <span>
                            <a href="https://blog.csdn.net/slwbcsdn/article/details/53458352" target="_blank">
                            json</a>
                        </span>
                                                    <span>
                            <a href="https://blog.csdn.net/csdnnews/article/details/83753246" target="_blank">
                            java</a>
                        </span>
                                                    <span>
                            <a href="https://blog.csdn.net/qq_35077512/article/details/88952519" target="_blank">
                            mysql</a>
                        </span>
                                                    <span>
                            <a href="https://blog.csdn.net/pdcfighting/article/details/80297499" target="_blank">
                            pycharm</a>
                        </span>
                                                    <span>
                            <a href="https://blog.csdn.net/sinyu890807/article/details/97142065" target="_blank">
                            android</a>
                        </span>
                                                    <span>
                            <a href="https://blog.csdn.net/gexiaoyizhimei/article/details/100122368" target="_blank">
                            linux</a>
                        </span>
                                                    <span>
                            <a href="https://download.csdn.net/download/xhg_gszs/10978826" target="_blank">
                            json格式</a>
                        </span>
                                                
                                                                            <span>
                            <a href="https://www.csdn.net/gather_18/OtDaAg1sLWRvd25sb2Fk.html" target="_blank">
                            c# orm框架对比</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_1d/OtDaAg2sLWRvd25sb2Fk.html" target="_blank">
                            c#网页demo</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_16/OtDaAg3sLWRvd25sb2Fk.html" target="_blank">
                            c#sdf数据库连接</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_1a/OtDaAg4sLWRvd25sb2Fk.html" target="_blank">
                            c# 使用配置文件</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_13/OtDaAg5sLWRvd25sb2Fk.html" target="_blank">
                            c#float 转int</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_1b/OtDaEgwsLWRvd25sb2Fk.html" target="_blank">
                            c#报警指示灯</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_16/OtDaEgxsLWRvd25sb2Fk.html" target="_blank">
                            c#复制二维数组</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_18/OtDaEgysLWRvd25sb2Fk.html" target="_blank">
                            c# 歌词滚动</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_1e/OtDaEgzsLWRvd25sb2Fk.html" target="_blank">
                            c#获取数据库一列数据</a>
                        </span>
                                                    <span>
                            <a href="https://www.csdn.net/gather_17/OtDaEg1sLWRvd25sb2Fk.html" target="_blank">
                            c#中parse用法</a>
                        </span>
                                                                        </div>
                </div>
                </div>
                                <div class="recommend-loading-box">
                <img src="https://csdnimg.cn/release/phoenix/images/feedLoading.gif">
            </div>
            <div class="recommend-end-box" style="display: block;">
                <p class="text-center">没有更多推荐了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
            </div>
        </div>
                        <div class="template-box">
                <span>©️2019 CSDN</span><span class="point"></span>
            <span>皮肤主题: 大白</span>
            <span> 设计师:
                                        CSDN官方博客                                    </span>
            </div>
                </main>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值