[MSCE C++]对话框中加入示意图

老师好:

        我想实现一个在对话框设置 元素构件的几何尺寸的 设置界面,然后对应该元素构件 的 标注 或者参数说明,我的问题是

1、如何引入这个视图。

2、我是给元素添加标注 还是元素几何 对应的 参数说明?也就是使用标注 还是  什么来标识长L、宽W、高 H类似这些信息呢?因为我理解标注是尺寸信息,而我说的 更多的是说明   示意参数的意义。

  • 我建议你将这个示意图做成一个Icon资源,然后直接在对话框中引用即可。引入视图的代价太大了。



  • 我一直没有找到引入ICON的例子,之前使用bmp 格式的文件,一直刷新不太友好!!!!老师 您能给一个例子吗?

    Bentley 二次开发小白一枚

  • 1. 制作自己的ICO文件。我是用的网上免费下载的GreenFish Icon Editor来制作ICO文件的,比较好用。

    2. 将制作好的ICO文件(各ICO文件不能重名)复制到C:\Program Files\Bentley\MicroStation CONNECT Edition\MicroStation\Mdlapps\Icons下

    3. 在.r资源文件的对话框的item list(控件列表部分)定义IconCmdX控件类型如下:

                {AUTO_XYWH,     IconCmdX,     ICONCMDID_MyIcon,       ON, 0, "", ""},
    			{AUTO_XYWH,     IconCmdX,     ICONCMDID_MyIcon2,      ON, 0, "", ""},

    注意,这里采用了最新的AutoLayout技术,AUTO_XYWH表示自动确定控件的位置、宽度和高度。即英文Automatically X、Y、Width和Height的缩写

    4. 在.r资源文件的控件定义部分定义如下内容:

    DItem_IconCmdXRsc  ICONCMDID_MyIcon =
        {
        NOHELP, MHELP, NOHOOK, NOARG, 0,
        ICONCMDID_MyIcon, "", ""
        };
    DItem_IconCmdRsc   ICONCMDID_MyIcon =
        {
        NOHELP, MHELP, 0, NOCMD, MTASKID, "", ""
        }
        extendedAttributes
        {{
        {EXTATTR_FLYTEXT, "MyIcon"},
        {EXTATTR_BALLOON, "MyIcon"},
        }};
    IconRsc ICONCMDID_MyIcon =
        {
        16, 16, ICONFORMAT_WINDOWS, BLACK_INDEX, "", "FooTestIcon"
        };
    
    DItem_IconCmdXRsc  ICONCMDID_MyIcon2 =
        {
        NOHELP, MHELP, NOHOOK, NOARG, 0,
        ICONCMDID_MyIcon2, "", ""
        };
    DItem_IconCmdRsc   ICONCMDID_MyIcon2 =
        {
        NOHELP, MHELP, 0, NOCMD, MTASKID, "", ""
        }
        extendedAttributes
        {{
        {EXTATTR_FLYTEXT, "MyIcon2"},
        {EXTATTR_BALLOON, "MyIcon2"},
        }};
    IconRsc ICONCMDID_MyIcon2 =
        {
        16, 16, ICONFORMAT_WINDOWS, BLACK_INDEX, "", "FooTestIcon2"
        };

    注意,这里定义了两个16X16点阵的小的Ico资源。每个ICO资源都要定义三种类型,分别是DItem_IconCmdXRsc、DItem_IconCmdRsc和IconRsc。其中,在IconRsc中指定ICO的大小和文件名

    5、在头文件中定义相关控件的ID如下:

    #define ICONCMDID_MyIcon          999991  //最好不用1,偶尔会取到系统的一个Icon
    #define ICONCMDID_MyIcon2         999992

    最后生成的对话框中在左下角能看到我的两个Ico。你当然可以把这个Ico做得很大。



  • 老师好:上面是我按照您的提示,随便放了一张图片,但是 这个位置 肯定不行,那么如果我想干预一下,放到一个比较理想的地方,应该怎么做呢?

    Bentley 二次开发小白一枚

  • .r创建的对话框有两种布局方法:①绝对坐标布局;②自动布局(AutoLayout)。

    请您仔细读一下SDK中的最基础的例子dlogdemo。里面两种布局的.r定义都有。

    总结而言,我们定义一个.r的对话框分了两大部分:①item list(控件列表),在该部分会列出每个item的位置、类型和ID;②item specification(每个控件的详细规格描述)。上述的两种布局也是针对item list来说的。

    所以,你需要在item list部分指定你的图片的具体位置。