TOP > Up > Today


Date:  Fri, 17 Oct 2008 16:53:31 +0900
From:  no@ann.co.jp
Subject:  [pasml 307036] XWindow 関連
To:  pasml@ann.co.jp
Message-Id:  <200810170753.m9H7rVZ2024270@pas2.jp>
X-Mail-Count: 307036

名前: アキコ BBSから
質問:http://pasokoma.jp/46/lg462679#462679
携帯:http://pasokoma.jp/m?num=462679&ope=v
--
メーカー名:自作PC ショップオリジナル 
OS名:Linux 
パソコン名:505291-13286
トラブル現象:ソフトの使い方がわからない Motif関連
--
はじめまして。

Motifを使って、4000行の一覧を表示させようとしてます。
スクロールバーで制御するのですが、サンプルプログラムでは991行しか
表示できません。
何故そうなるのか理由すら分からないので、どなたか教えて下さい。

サンプルプログラムを以下に記述します。

#include &lt;stdio.h>
#include &lt;string.h>
#include &lt;stdlib.h>
#include &lt;X11/Xlib.h>
#include &lt;X11/Intrinsic.h>
#include &lt;X11/StringDefs.h>
#include &lt;Xm/Xm.h>
#include &lt;Xm/XmAll.h>
#include &lt;Xm/PushBG.h>
#include &lt;Xm/LabelG.h>
#include &lt;Xm/ToggleB.h>
#include &lt;Xm/ScrolledW.h>
#include &lt;Xm/RowColumn.h>
#include &lt;Xm/Form.h>
#include &lt;Xm/Text.h>
#include &lt;pwd.h>

main (int argc, char *argv[])
{
  Widget       toplevel, sw, main_rc, form, toggle, child;
  XtAppContext app;
  UserInfo    *users;
  Arg   args[32];
  int    n;
  int    ii;
  char  abuf[128];
  XtSetLanguageProc (NULL, NULL, NULL);

  toplevel = XtVaOpenApplication (&amp;app, &quot;Demos&quot;, NULL, 0, &amp;argc, argv, NULL,sessionShellWidgetClass, NULL);
  n = 0;
  XtSetArg (args[n], XmNwidth, 500); n++;
  XtSetArg (args[n], XmNheight, 300); n++;
  XtSetArg (args[n], XmNscrollingPolicy, XmAUTOMATIC); n++;
  sw = XmCreateScrolledWindow (toplevel, &quot;scrolled_w&quot;,   args, n);
  main_rc = XmCreateRowColumn (sw, &quot;main_rc&quot;, NULL, 0);
  for (ii = 0; ii &lt; 4000; ii++) {
    form = XmCreateForm (main_rc, &quot;&quot;, NULL, 0);

    n = 0;
    XtSetArg (args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++;
    XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
    XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
    XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
    XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
    XtSetArg (args[n], XmNrightPosition, 15); n++;
    XtSetArg (args[n], XmNbackground, 0x000000); n++;
    XtSetArg (args[n], XmNforeground, 0xffffff); n++;
    XtSetArg (args[n], XmNheight, 30); n++;
    XtSetArg (args[n], XmNmarginWidth, 0); n++;
    XtSetArg (args[n], XmNmarginHeight, 0); n++;
    XtSetArg (args[n], XmNborderWidth, 0); n++;
    XtSetArg (args[n], XmNindicatorOn, XmINDICATOR_CHECK_BOX); n++;
    XtSetArg (args[n], XmNindicatorSize, 22); n++;
    XtSetArg (args[n], XmNdetailShadowThickness, 3); n++;
    XtSetArg (args[n], XmNhighlightThickness, 0); n++;
    memset((char *)abuf, 0, sizeof(abuf));
    sprintf(abuf, &quot;%d&quot;, ii);
    child = XmCreateToggleButton (form, abuf, args, n);
    XtManageChild (child);
    XtManageChild (form);
  }

  XtManageChild (main_rc);
  XtManageChild (sw);
  XtRealizeWidget (toplevel);
  XtAppMainLoop (app);
}




この様なサンプルプログラムですが、何故991行までしか表示されないのでしょうか?

スクロール画面領域のサイズと言うのはどこで決めるのでしょうか?
991行までしか出ないのは、スクロール画面領域のサイズがそこまでしか無い為、
そこまでを表示している気がしますので、スクロール画面領域のサイズが広がれば
沢山の行が表示出来るのではと考えてますが、その画面領域サイズを広げる方法が
分かりません。

申し訳ありませんが回答の程よろしくお願いします。


--
== 掲示板URL: http://pasokoma.jp/bbs ==
   配信の停止: http://pasokoma.jp/taikai
   本メールマガジンへの返信はなさらないで下さい
== 投稿はパソコン困りごと掲示板でお願い致します ===
    

TOP > Up > Today