0

私はそのようなメニュー状況を持っています:

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;
}

アイテム hamburger と cevapcici を使用して「ラジオ トグル グループ」機能を取得する方法で、最初に 2 番目のチェックマークをオフにし、その逆を行います。これは私の試みですが、うまくいきません。

2) Windows 7 で IUP スイートの Web ブラウザの例を試してみました。問題は、サイズ変更 (増加) 中に悪い黒いちらつきが表示されることです。また、表示中にウェブブラウザの背景が黒くちらつきます。Ubuntuで同じ例を試してみると、ちらつきも表示されますが、背景が白であるため、あまり見えません。これらのちらつきを取り除く方法はありますか、またはWindowsでWebブラウザーウィンドウの白い背景を取得しない場合はどうすればよいですか?

3) webbrowser は ole オブジェクト (Windows 上) であるため、IUP ハンドルからの参照によって、または MS プログラミング ツールから行っていたような他の方法で、「印刷プレビュー」または「ズーム」機能を使用することは可能ですか?

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 がフリーズします。ただし、タブを変更すると他のデータがマトリックスにロードされますが、同じマトリックスと関連する機能を使用するのに十分なほど類似しているため、両方のタブで同じ「マット」(IupMatrix) を取得する必要があります。

ここで何をしますか?

4

1 に答える 1

1

1) RADIO 属性は、IupItem ではなく、IupMenu に属します。これは、そのメニュー内のすべての IupItems がラジオの一部になることも意味します。

回避策は、アクション コールバック内の他のトグルを手動で設定解除することです。

2) そのちらつきは IUP によるものではありません。ネイティブ コントロールがそれを行っている理由がわかりません。

3) はい。ただし、OLE API を使用してプログラムする必要があります。IupOleControl と IupWebBrower のソース コードを見て、コードを送っていただければ、喜んで IUP に追加します。

4) あなたはしません。K_ANY コールバックを使用します。

5) ダイアログの別の場所でコントロールを再利用することはできません。したがって、2 つの異なるマトリックスを持つ 2 つの異なるフレームが必要です。できることは、マトリックスをカプセル化することです。そのため、必要なときにいつでも同じ関数が同じ属性とコールバックを持つマトリックスを作成します。

于 2013-05-10T00:49:02.630 に答える