我用WINAPI编写程序
有一个窗口,窗口里有一个静态文本框,默认设置时显示文本static
我用dialogbox函数创建的窗口,希望刚刚建立窗口就把这个静态文本框的背景设置为全白,不是仅仅把字清楚,背景也要改,我就在wm_paint消息中添加了代码
但是刚建立的窗口没有wm_paint消息,必须我自己把窗口挡住一部分再拿出来,让他重绘才能把文本框弄成全白
这个该怎么解决呢?

解决方案 »

  1.   


    我在wm_initial消息里添加这个函数也不好使,刚才试过了
      

  2.   

    WM_PAINT和Invalidate()是循环调用关系,会有出问题的。WM_PAINT里面获取那个Static的HDC然后绘制涂上白色即可。记得FillRect即可
      

  3.   

    "刚建立的窗口没有wm_paint消息" ??
      

  4.   

    放到 wm_create里就行了,然后对 wm_erasebkgnd进行 return true.这样 wm_create里的绘图操作就不会被擦掉了
      

  5.   

    提供个例子:wm_create:getdc
    movetoex
    linetoreleasedcreturn 0;break;wm_erasebkgnd:return 1;break;这样可以放在在wmcreate里的绘图操作被擦掉因为wm_erasebkgnd会擦背景的, 如果我们直接诶返回true.那么它就不会了
      

  6.   

    刚建立的窗口没有wm_paint消息
    ShowWindow() 了没有 ?