VS C++改变窗体背景色

简介: VS C++改变窗体背景色

可以简单的设置rgb/w/h的值。


static void changeBackground(HWND hwnd)
{
   /*
    RECT rect;
    GetClientRect(hwnd, &rect);
    int cxClient = rect.right;
    int cyClient = rect.bottom;
  */
    HDC hdc = GetDC(hwnd);//获取当前的显示设备上下文
    int w = 200;
    int h = 100;
    char* rgb = (char*)malloc(3*w*h);
    for (int i=0; i<w*h; i++)
    {
        rgb[i*3+0] = 0x12;
        rgb[i*3+1] = 0x78;
        rgb[i*3+2] = 0x34;
    }
    HDC  hdcsource = CreateCompatibleDC(NULL);//创建存放图象的显示缓冲
    HBITMAP bitmap = CreateCompatibleBitmap(hdc, w, h);
    SelectObject(hdcsource, bitmap); //将位图资源装入显示缓冲
    SetStretchBltMode(hdcsource, COLORONCOLOR);
    BITMAPINFO bmi;
    bmi.bmiHeader.biSize         = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biWidth        = w;
    bmi.bmiHeader.biHeight       = h;
    bmi.bmiHeader.biCompression  = BI_RGB;
    bmi.bmiHeader.biBitCount     = 24;
    bmi.bmiHeader.biPlanes       = 1;
    bmi.bmiHeader.biClrUsed      = 0;
    bmi.bmiHeader.biClrImportant = 0;
    bmi.bmiHeader.biSizeImage    = 0;
    StretchDIBits(hdcsource,
        0, 0, w, h,
        0, 0, w, h,
        rgb, &bmi,DIB_RGB_COLORS, SRCCOPY);
    BitBlt(hdc,0,0,w,h, hdcsource,0,0,SRCCOPY);//将图象显示缓冲的内容直接显示到屏幕
    DeleteObject(bitmap);
    DeleteDC(hdcsource);
    ReleaseDC(hwnd, hdc);
    free(rgb);
}
目录
相关文章
|
C++ 计算机视觉 Python
C++曲线图折线图Qt窗体绘图
C++曲线图折线图Qt窗体绘图
297 0
|
Web App开发 C++
c++ 实现不在同一程序内,在光标处(当前有焦点的窗体输入框)输入字符
c++ 实现不在同一程序内,在光标处(当前有焦点的窗体输入框)输入字符
169 1
|
数据安全/隐私保护 C++ Python
Qt RSA OpenSSL C++ Qt加密解密签字通信系统窗体源码
Qt RSA OpenSSL C++ Qt加密解密签字通信系统窗体源码
561 0
Qt RSA OpenSSL C++ Qt加密解密签字通信系统窗体源码
|
网络协议 C++ Python
Qt+C++ TCP发送接收信息客户端与服务端窗体
Qt+C++ TCP发送接收信息客户端与服务端窗体
307 0
Qt+C++ TCP发送接收信息客户端与服务端窗体
|
C++ 计算机视觉 Python
Qt+C++窗体界面中英文语言切换
这篇博客针对<<Qt+C++窗体界面中英文语言切换>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
325 0
C++ 让窗体最大最小化
C++ 让窗体最大最小化
291 0
|
C++
VS C++改变窗体背景色
VS C++改变窗体背景色
177 0
|
7月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。