IUP,按钮,树,矩阵

时间:2013-04-21 22:32:08

标签: c iup

1) 我尝试将ico图像加载到IUP按钮但没有成功 在链接IM dll并添加正确的标题后,这是我的方法:

Ihandle *btn1, *btn2;
Ihandle* img1;

btn1 = IupButton("", NULL);
IupSetAttribute(btn1, "MINSIZE", "24x24");
btn2 = IupButton("", NULL);
IupSetAttribute(btn2, "MINSIZE", "24x24");

img1 = IupImage(16, 16, IupLoadImage("icons\\home_16x16.ico"));
IupSetAttribute(btn1, "IMAGE", "img1");

frame = IupHbox(btn1, btn2, NULL);
dlg = IupDialog(IupHbox(mat, IupVbox(frame, tree, NULL), NULL));

IUP不会报告任何错误,但图像不会出现在按钮btn1上。
如何在RGBA模式下将图片从文件加载到按钮?

2) 我按照以下顺序从IqlTree填充来自sqlite数据库的数据:'Name'(这是root),然后是大约170个拥有1-10个叶子的分支。 VALUE设置为0并选择“名称” 如何将代码扩展树连接到第一个分支,就像我双击“Name”一样? 我尝试EXPANDALL属性,但随后所有叶子都被扩展了不想要的东西。

3) 如何在k_any回调f中获得IUPtree项'id'。即按ENTER键的时候?

4) 如何在executeleaf和branchopen回调中从'id'获取IUPtree项目文本?

5) 如何循环IUPtree以获取id,text,sort of item(branch / leaf)?

6)IUPmatrix是否有办法捕获keyUP或keyRELEASED事件,就像我们在K_ANY中获取keyPRESS一样?

1 个答案:

答案 0 :(得分:2)

1)更加注意每个功能的数据类型。请注意,IupLoadImage已经返回了Ihandle。所以而不是:

img1 = IupImage(16, 16, IupLoadImage("icons\\home_16x16.ico"));

你应该这样做:

img1 = IupLoadImage("icons\\home_16x16.ico");

如果你这样做:

IupSetAttribute(btn1, "IMAGE", "img1");

你指定了一个字符串,你必须以某种方式将字符串“img1”与Ihandle img1相关联。它们是两个非常不同的东西。检查IupImage文档。或者你这样做:

IupSetHandle("img1", img1);
IupSetAttribute(btn1, "IMAGE", "img1");

或者更好的方式:

IupSetAttributeHandle(btn1, "IMAGE", img1);

2)您是否尝试仅展开要扩展的分支?检查IupTree文档中的STATEid属性。

3)你想要的是具有焦点的项目。因此,获取IupTree的VALUE属性。请注意,Enter键将触发已具有项ID的executeleaf回调。

4)检查文档中的TITLEid属性。

5)提示,在设置/获取IupTree,IupMatrix或IupList的属性时,您可以使用:

IupSetAttribute(ih, "TITLE3", "My Title");
  or
IupSetAttributeId(ih, "TITLE", 3, "My Title");

6)正如我之前告诉你的,IupMatrix继承自IupCanvas,因此你还必须检查IupCanvas回调。查看IupMatrix回调文档,最后有关于IupCanvas回调的解释。