1

我想在表单中添加一些彩色方形以显示图例。由于我没有遇到任何添加彩色形状的方法,所以我求助于将形状创建为图像,将它们作为资源加载,目前正在尝试将它们加载到表单中......虽然这看起来很长一个简单的单色正方形的解决方法。

首先,有没有办法将给定颜色的基本形状添加到 AX 形式?否则,是否有更简单的方法可以将图像添加到表单而无需复制 CompanyImage(或 CompanyInfo)表单?

注意:我希望将图像正确存储在 AX 中,而不是通过文件路径将图像链接到本地​​计算机上的图像。

4

3 回答 3

3

您可以使用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但这对于静态内容可能有点过分。

你现在应该有这个

输出

于 2013-05-03T10:28:46.957 回答
1

您可以将图像作为容器 (BLOB) 存储在数据库中,并将它们显示在表单或报告中:

如何:将图像添加到表单

于 2013-04-25T19:35:59.807 回答
0

这可能是一个简单的解决方法,但这就是我为我的一个更改所做的。由于您想将它用于图例,您只需添加一个按钮并将属性设置为平面,给它一个颜色和一个文本。作为传奇,这应该足够了。

于 2013-05-12T18:30:20.327 回答