我想在表单中添加一些彩色方形以显示图例。由于我没有遇到任何添加彩色形状的方法,所以我求助于将形状创建为图像,将它们作为资源加载,目前正在尝试将它们加载到表单中......虽然这看起来很长一个简单的单色正方形的解决方法。
首先,有没有办法将给定颜色的基本形状添加到 AX 形式?否则,是否有更简单的方法可以将图像添加到表单而无需复制 CompanyImage(或 CompanyInfo)表单?
注意:我希望将图像正确存储在 AX 中,而不是通过文件路径将图像链接到本地计算机上的图像。
我想在表单中添加一些彩色方形以显示图例。由于我没有遇到任何添加彩色形状的方法,所以我求助于将形状创建为图像,将它们作为资源加载,目前正在尝试将它们加载到表单中......虽然这看起来很长一个简单的单色正方形的解决方法。
首先,有没有办法将给定颜色的基本形状添加到 AX 形式?否则,是否有更简单的方法可以将图像添加到表单而无需复制 CompanyImage(或 CompanyInfo)表单?
注意:我希望将图像正确存储在 AX 中,而不是通过文件路径将图像链接到本地计算机上的图像。
您可以使用WinGDI Class
. 这是一个简单的示例:
void drawShapes()
{
WinGDI winGDI;
Int brush, height, width;
;
//myWindow being the FormWindowControl
height = myWindow.heightValue()/2;
width = myWindow.widthValue()/2;
myWindow.lockDC();
winGDI = new WinGDI(myWindow.hDC());
brush = winGdi.createSolidBrush(WinAPI::RGB2int(0, 0, 255));
winGDI.fillRect(0, 0, width, height, brush);
winGDI.deleteObject(brush);
winGDI.ellipse(0, 0, width, height);
brush = winGdi.createSolidBrush(WinAPI::RGB2int(255, 0, 0));
winGDI.fillRect(width, height, 2*width, 2*height, brush);
winGDI.deleteObject(brush);
myWindow.UnlockDC();
}
我假设你有类似的东西。
现在,如果您只在窗体中调用一次,则只要调用窗口控件的方法(并且经常调用它) init
,绘图就会被删除。paint
paint
所以最简单的方法就是在窗口的方法中调用它。这样,每次重绘 myWindow 的内容时,您的形状也会如此。
您还可以像俄罗斯方块教程一样(查看cycle
方法)使用(查看方法)强制以(短)定期时间间隔重绘形状,setTimeout
但这对于静态内容可能有点过分。
你现在应该有这个
您可以将图像作为容器 (BLOB) 存储在数据库中,并将它们显示在表单或报告中:
这可能是一个简单的解决方法,但这就是我为我的一个更改所做的。由于您想将它用于图例,您只需添加一个按钮并将属性设置为平面,给它一个颜色和一个文本。作为传奇,这应该足够了。