IUP,菜单,webbrowser,树,标签

时间:2013-05-09 18:56:16

标签: iup

我有这样的菜单情况:

int menu_create(Ihandle *menu)
{
hamburger = IupItem("&Hamburger", "hamburger");
IupSetAttributes(hamburger, "AUTOTOGGLE=YES, RADIO=YES");

char* ce = "Ćev&apčići";
cevapcici = IupItem(utf8_to_cp1250(ce), "cevapcici");
IupSetAttributes(cevapcici, "AUTOTOGGLE=YES, RADIO=YES");

exit = IupItem("Exit\tAlt+F4", "exit");
img4 = IupLoadImage("icons\\delete_16x16.ico");
IupSetAttributeHandle(exit, "TITLEIMAGE", img4);

menu = IupMenu(
       IupSubmenu("File",
          IupMenu(
             hamburger,
             cevapcici,
             IupSeparator(),
             IupItem("Carro&t", "carrot"),
             IupSeparator(),
             exit,
             NULL)),
       NULL);

      IupSetFunction("exit", (Icallback)mnu_exit);
      ... etc...

  IupSetHandle("menu", menu);
return IUP_DEFAULT;
}

如何通过汉堡包和cevapcici项目获得“无线电切换组”功能,因此首先关闭第二个复选标记,然后相反。这是我的尝试,但它不起作用。

2)我在Windows 7上尝试来自IUP套件的webbrowser示例。问题是在调整大小(增加)期间会出现黑色闪烁。此外,webbrowser的背景在显示期间闪烁黑色。 我在Ubuntu上尝试了一个相同的例子,那里也出现了闪烁,但由于背景是白色的,所以它并不那么明显。 有没有办法摆脱那些闪烁,或者如果没有在Windows上获得webbrowser窗口的白色背景?

3)由于webbrowser是ole对象(在windows上)可以通过IUP句柄引用或者像我们以前从MS编程工具那样的其他方式使用说“打印预览”或“缩放”功能吗? / p>

wbInstance.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, ExecOpt.OLECMDEXECOPT_DONTPROMPTUSER, 150, DBNull.Value)

4)如何从IupTree中获取key_up事件?

5)IupTabs的有趣情况:

frame3 = IupHbox(mat, val, NULL);

vboxt1 = IupVbox(frame3, NULL);
vboxt2 = IupVbox(frame3, NULL);
IupSetAttribute(vboxt1, "TABTITLE", "First documents... ");
IupSetAttribute(vboxt2, "TABTITLE", "Second documents... ");
tabs = IupTabs(vboxt1, vboxt2, NULL);

hbox1 = IupHbox(tabs, IupVbox(frame, tree, frame2, NULL), NULL);

dlg = IupDialog(hbox1);

当我设置frame3时,两个标签应该相同,我的GUI冻结了。 但是,我必须在两个选项卡中都使用相同的“mat”(IupMatrix),因为通过更改选项卡,其他数据加载到矩阵中但类似于使用相同的矩阵和相关函数。

这里做什么?

1 个答案:

答案 0 :(得分:1)

1)RADIO属性属于IupMenu,而不属于IupItem。这也意味着该菜单中的所有IupItem都将成为收音机的一部分。

解决方法是手动取消设置动作回调中的其他切换。

2)闪烁不是由IUP引起的。不知道为什么本机控件正在这样做。

3)是的,但您必须使用OLE API对其进行编程。如果您查看IupOleControl和IupWebBrower源代码并将代码发送给我,我将很乐意将其添加到IUP。

4)你没有。使用K_ANY回调。

5)您不能在任何对话框中的不同位置重用控件。所以你必须有两个不同的帧,有两个不同的矩阵。你可以做的就是封装你的矩阵,所以同样的函数会随时创建一个具有相同属性和回调的矩阵。