AC开发中碰到的一些问题记录

0,最重要的一条:中文都得在末尾加空格!!!

如下所示,整体模型后要加空格,如果你检查过所有代码都觉得没问题还是出现编译不过可能是这个问题。

'GDLG' 32503  Modal             40       0  300  300        "Domodal Dialog Test" {
/* [  1] */ RadioButton         40   20   100   20        SmallPlain 1 "整体模型"  

}

1,要看开发文档找到radiobutton的介绍页,grc控件的格式必须要根据文档提供的参数多少来填,否则会提示grc.gr2文件无法打开。


2,同一组radiobutton要写一样的groupID。


3,radiobutton设置一组中被选的按钮函数DGSelectRadio(NameModelMenuStringResourcedId, 1);


4,页面里面的控件坐标是根据页面来定的,页面的坐标还没查清楚。


5,文本控件如果不更改则不需要控件id。


6,  没有combo box,用PopupControl   替代,offset 代表的是文本显示的距离(如果没有icon就类似于icon的长度)。
如下:

/* [  9] */ PopupControl    100    90   180    25            150       3  
                            NoIcon  "项目建议书准备阶段"
                            NoIcon  "可行性研究阶段 "
                            NoIcon  "设计阶段 "
                            NoIcon  "建设准备阶段 "
          

}


7,CHSetDefaultCharCode(CC_SimpChinese)这个函数用来设置中文获取乱码的问题。


8,DGGetItemValLong(NameModelMenuStringResourcedId, dateControlId)用来获取日期控件的值。
其中:
NameModelMenuStringResourcedId是对话框的id
dateControlId是日期控件的ID

9,模态对话框中的窗口标题如果是中文需要在末尾空格。如'GDLG' 32502  Modal             40         0   300  260        "文件配置 " {

10,模态对话框没有最大化以及关闭图标。


11,如果用到grc写文本,确保末尾有两个空格,不然会报错。如:
/* [  28] */ LeftText         50    290     80   20     SmallPlain  vCenter  Default "自审结论: "
是正确的
/* [  28] */ LeftText         50    290     80   20     SmallPlain  vCenter  Default "自审结论:"
是错误的

12,listbox的用法。
customerListBox.SetHeaderSynchronState(false);
    customerListBox.SetHeaderItemCount(2);
    customerListBox.SetTabFieldCount(2);

    const short listBoxTab1Width = 120;
    const short listBoxTab2Width = 120;

    short pos = 0;
    customerListBox.SetTabFieldProperties(tabindex1Id, pos, pos + listBoxTab1Width, DG::ListBox::Center, DG::ListBox::NoTruncate, false);
    pos += listBoxTab1Width;
    customerListBox.SetTabFieldProperties(tabindex2Id, pos, pos + listBoxTab2Width, DG::ListBox::Left, DG::ListBox::NoTruncate, false);
    pos += listBoxTab2Width;
    customerListBox.SetTabFieldProperties(tabindex3Id, pos, pos + listBoxTab3Width, 

    customerListBox.SetHeaderItemSize(1, listBoxTab1Width);
    customerListBox.SetHeaderItemSize(2, listBoxTab2Width);

    customerListBox.SetHeaderItemText(1, "单体建筑名");
    customerListBox.SetHeaderItemText(2, "建筑编号");

    customerListBox.SetTabFieldSeparator(tabindex1Id, true);
    customerListBox.SetTabFieldSeparator(tabindex2Id, true);
 

    customerListBox.InsertItem(1);
    customerListBox.SetTabItemText(1, 1, "modal 1");
    customerListBox.SetTabItemText(1, 2, "modal 2");
 

结合SetHeaderItemSize所在头文件以及文档看一下相关内容。

13: 使用tabcontrol时注意的点,创建一个对话框,在GRC放一个tabcontrol,然后再定义两个tabpage页,加入到对话框的GRC中。如:

'GDLG' 32506  Modal|grow         40     0   900   450    "整体信息 " {
 /* [  1] */ NormalTab    10  10  900 500   

                   32507  130  "项目基础信息"
                   32525  131  "建设用地信息"

}

tabpage需要绑定到tabcontrol,如:
ConstructionFieldTab::ConstructionFieldTab(const DG::TabControl& tabControl) :
    DG::TabPage(tabControl, 2, ACAPI_GetOwnResModule(), CONSTRUCTION_FIELD_INFO_TAB, ACAPI_GetOwnResModule()),
    其中:tabControl是对话框中的tabControl变量,2是第二页即32525的资源id的页。CONSTRUCTION_FIELD_INFO_TAB,是资源id32525


14:listbox的大坑!!!
如果要用listbox的SetOnTabItem功能,在GRC文件中一定就要先把你要添加的控件先定义了!!(记住,很重要!!!!),不然,怎么都添加不上,怀疑人生。
'GDLG'  32525    TabPage      0 0 900  400  "" {
/* [  1] */ LeftText         12   10    60   20     SmallPlain  vCenter  Default "用地信息: "
/* [  2] */ PopupControl     70   10    200   25            150       3  
                            NoIcon  "包含分区用地 "
                            NoIcon  "不包含分区用地 "
/* [  3] */ Button            714   35   80   35        LargePlain    "保存"
/* [  4] */ Button            800   35   80   35        LargePlain    "取消"
/* [  5] */ Button            680   35   80   35        LargePlain    "..."
/* [  6] */ UserControl                0    0   18   18    257  0x0005  0x1600  0
/* [  7] */ MultiSelList   10   75   800   250    LargePlain  PartialItems  21 HasHeader  21

15:#include "APIEnvir.h"
       #include "ACAPinc.h"
包含API的头文件一定要包含这两个一起,而且顺序不能错,不然api会显示没定义。

#include“ FileSystem.hpp” //带来使用FileSystem类所需的一切(例如Location)
IO :: Location appFolderLoc; //它将保存正在运行的应用程序文件夹的位置
GSErrCode errorCode = IO :: fileSystem.GetSpecialLocation(IO :: FileSystem :: ApplicationFolder,&appFolderLoc);

16,ACAPI_Favorite_Get 应该是用于获取导入的文件的所有信息,其中获取到的结构体      API_Favorite有个唯一的name应该可以用于获取唯一标识一个文件的值。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值