zoukankan      html  css  js  c++  java
  • 窗体背景的绘制(Windows窗体每次都会重绘其窗体背景,所以我们可以通过拦截窗体重绘背景的消息(WM_ERASEBKGND),并自定义方法来实现重绘窗体背景)

    核心思想:由于Windows窗体每次都会重绘其窗体背景,所以我们可以通过拦截窗体重绘背景的消息(WM_ERASEBKGND),并自定义方法来实现重绘窗体背景。通过TImage组件也可以实现,但是重写WM_ERASEBKGND消息的效率更高一些,所以还是推荐使用这种方法。

    (2)声明重绘背景消息响应函数

    void fastcall OnWMEraseBkgnd(TWMEraseBkgnd& Msg); 


    (3)添加消息映射

    BEGIN_MESSAGE_MAP
    //拦截重画背景的事件
    MESSAGE_HANDLER(WM_ERASEBKGND,TWMEraseBkgnd,OnWMEraseBkgnd); 
    END_MESSAGE_MAP(TForm);


    (4)编写自绘背景消息响应函数的代码

    复制代码
    void fastcall TFormMain::OnWMEraseBkgnd(TWMEraseBkgnd& Msg)
    {
        //重画背景
        TCanvas* canvas = new TCanvas;
        canvas->Handle = Msg.DC;
        int cx = ClientWidth/bmpFormBK->Width + 1;
        int cy = ClientHeight/bmpFormBK->Height + 1;
        for (int i=0; i<cy; i++)
        for (int j=0; j<cx; j++)
        {
            canvas->Draw(j*bmpFormBK->Width, i*bmpFormBK->Height,bmpFormBK); Msg.Result = true;
        }
        delete canvas;
    }

    http://www.cnblogs.com/songsu/articles/1336653.html

  • 相关阅读:
    speex库音频降噪(含代码)
    语音增强(降噪)之一——谱减法
    CUDA与OpenGL互操作
    二维图像的三维旋转
    迷惑很久,仅以个人想法谈谈MVC架构,希望大家多给点意见
    Less使用心得
    js实现蛇形矩阵
    H5天气查询demo(二)
    HTML5 Shim
    html5发展的里程碑事件
  • 原文地址:https://www.cnblogs.com/findumars/p/8447818.html
Copyright © 2011-2022 走看看