填充矩形类型的图片框,C++WINAPI
Filling a PictureBox of Type Rectangle, C++ WINAPI
我正在重新创建一个模拟Windows颜色编辑对话框的应用程序(即来自Paint),用于研究目的
https://i.stack.imgur.com/UGdtU.jpg
我创建了一个外观相同的对话框,使用PictureBox作为"颜色容器"。我将PictureBox类型设置为"矩形",我认为使用LOGBRUSH填充矩形对象会更容易;而不是将PictureBox设置为"位图"类型并将位图的每个像素设置为必要的颜色。
我遇到的问题是……我不知道如何将PictureBox控件的HWND与LOGBRUSH一起使用来填充它。
我在查找PictureBox通知和消息以与控件通信时遇到问题。
有人能给我一些关于如何与PictureBox控件正确通信的见解吗?
使用具有SS_SIMPLE样式且没有文本的静态控件。然后在父窗口中处理WM_CTLCOLORSTATIC消息。然后,父窗口可以返回系统用于绘制背景的笔刷。请记住,除非是系统刷,否则释放刷是您的责任。即,如果您使用CreateSolidBrush或类似功能创建了笔刷,那么一旦不再使用,就需要释放笔刷,否则会导致GDI对象泄漏。对于您提议的实现,您可以在初始化对话框时创建一组笔刷句柄,并为特定框提供适当的笔刷以响应WM_CTLCOLORSTATIC。当对话框即将销毁时,可以释放笔刷手柄。
另一种实现方式是创建一个自定义控件,该控件只保存窗口私有数据中数组中各种框的颜色,并手动绘制它们以响应WM_PAINT。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- Winapi:在类成员功能上创建新线程 - 不兼容的参数类型
- 如何在宽字符数组的末尾附加一个零字符,以制作这种奇怪的 PCZZWSTR winapi 数据类型
- 填充矩形类型的图片框,C++WINAPI
- WINAPI打印-两种尺寸相同的纸张类型
- 为什么 WinAPI 对 BOOL 类型使用 int(32 位)