我有这样的菜单情况:
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),因为通过更改选项卡,其他数据加载到矩阵中但类似于使用相同的矩阵和相关函数。
这里做什么?
答案 0 :(得分:1)
1)RADIO属性属于IupMenu,而不属于IupItem。这也意味着该菜单中的所有IupItem都将成为收音机的一部分。
解决方法是手动取消设置动作回调中的其他切换。
2)闪烁不是由IUP引起的。不知道为什么本机控件正在这样做。
3)是的,但您必须使用OLE API对其进行编程。如果您查看IupOleControl和IupWebBrower源代码并将代码发送给我,我将很乐意将其添加到IUP。
4)你没有。使用K_ANY回调。
5)您不能在任何对话框中的不同位置重用控件。所以你必须有两个不同的帧,有两个不同的矩阵。你可以做的就是封装你的矩阵,所以同样的函数会随时创建一个具有相同属性和回调的矩阵。