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窗体绘图
173 0
|
2月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
2月前
|
JavaScript C++
【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】
【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】
112 0
|
11月前
|
安全 测试技术 C++
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
最近用到了gRPC,配置了很长时间,分享一下配置过程。先来看一下我准备的文件包(资源我放在最后)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
5月前
|
算法 编译器 C语言
【C/C++ 编译器的差异化】C++标准库在GCC和VS之间的表现差异
【C/C++ 编译器的差异化】C++标准库在GCC和VS之间的表现差异
892 1
|
5月前
|
算法 编译器 C语言
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
217 1
|
5月前
|
算法 前端开发 大数据
【C/C++ 基础知识 】C++中易混淆的函数和关键字:std::find vs std::search,std::remove vs std::erase,remove vs delete
【C/C++ 基础知识 】C++中易混淆的函数和关键字:std::find vs std::search,std::remove vs std::erase,remove vs delete
127 0
|
5月前
|
Linux C++
(C++)VS下sizeof(string(““))与linux-g++下sizeof(string(““))大小区别及原因剖析
(C++)VS下sizeof(string(““))与linux-g++下sizeof(string(““))大小区别及原因剖析
58 0
(C++)VS下sizeof(string(““))与linux-g++下sizeof(string(““))大小区别及原因剖析
|
10月前
|
Java 程序员 C++
C++ vs Python vs Java
C++ vs Python vs Java
58 0
|
Web App开发 C++
c++ 实现不在同一程序内,在光标处(当前有焦点的窗体输入框)输入字符
c++ 实现不在同一程序内,在光标处(当前有焦点的窗体输入框)输入字符
103 1