🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Hideo Tukamoto Wed, 28 Oct 1992 06:29
question
#2
Author: Hideo Tukamoto
Date: Wed, 28 Oct 1992 06:29
26 lines
1490 bytes
$B!!%R%e!<%^%s%7%9%F%`$NDMK\$G$9!#(J

$B!!$o$+$i$J$$;v$,$"$C$F!"3'MM$N$*NO$r$*<Z$j$7$?$$$H;W$$$^$9!#(J
$B!!<B$O#X#v#i#e#w%W%m%0%i%_%s%0$G(JCANVAS$B$K3($rIA$-$?$$$N$G$9$,(J
$B!!$=$N3($r<B:]$K=q$/4X?t$r;XDj$9$k$H$-!"Nc$($P$=$N4X?t$r(J
	Draw()
$B!!$J$I$H$9$k$H(J
	(Canvas)xv_create( ..............
                           CANVAS_REPAINT_PROC,Draw,
	                   ..............
	                   NULL);
  $B$NMM$K;XDj$7$F$d$l$PNI$$$H$N;v$J$N$G$9$,!"$3$l$@$H4X?t$K(J
$B!!0z?t$r$b$?$;$k;v$O=PMh$^$;$s!#$9$J$o$AA4$F0z?t$O(Jvoid$B07$$(J
$B!!$H$J$C$F$7$^$&$h$&$K;W$$$^$9!#$=$3$G4X?t$K0z?t$r$b$?$;$F(J
$B!!$"$2$k$K$O$I$NMM$K$9$l$P$h$m$7$$$N$G$7$g$&$+!#$$$m$$$m%^(J
$B!!%K%e%"%k$r$_$F$_$^$7$?$,!"$o$+$j$^$;$s$G$7$?!#$=$l$H$b$=(J
$B!!$s$J;v$O=PMh$J$$$N$GA4$F30ItJQ?t07$$$7$J$1$l$P$J$i$J$$$N(J
$B!!$G$7$g$&$+!#(J
$B!!$I$J$?$+F1$8MM$J7P83$r$*;}$A$NJ}$N$40lJs$r$*BT$A$7$F$*$j(J
$B!!$^$9!#(J

				$B%R%e!<%^%s%7%9%F%`!J3t!K(J
	$B!!!!!!!!!!!!!!!!!!!!!!!!#A#I5;=QIt!!DMK\1QM:(J
				tel:    03-5276 2661
				Email : tukamoto@human-system.co.jp 
Re: question
#3
Author: Toshio Ueshiba
Date: Thu, 29 Oct 1992 03:40
54 lines
2439 bytes
はじめまして、植芝@電総研と申します。

On 10/28/92(15:29) tukamoto@human.human-system.co.jp (Hideo Tukamoto) wrote
in <TUKAMOTO.92Oct28152950@human.human-system.co.jp> (fj.windows.x:2983/etlss2):
 | 実はXviewプログラミングでCANVASに絵を描きたいのですが
 | その絵を実際に書く関数を指定するとき、例えばその関数を
 |	Draw()
 | などとすると
 |	(Canvas)xv_create( ..............
 |                           CANVAS_REPAINT_PROC,Draw,
 |	                   ..............
 |	                   NULL);
 |  の様に指定してやれば良いとの事なのですが、これだと関数に
 | 引数をもたせる事は出来ません。すなわち全て引数はvoid扱い
 | となってしまうように思います。

引数を持たせることはできないように思いますが、xv_create した object に
対して、引数に相当する変数を属性リストによって張り付けることができます。

たとえば、こんな感じです。

{
    ArgType	arg;
    (Canvas)xv_create( ..............
                      CANVAS_REPAINT_PROC, Draw,
		      WIN_CLIENT_DATA, arg, /* canvas に arg を張り付ける */
	              ..............
	              NULL);
}

void
Draw(canvas, window, repaint_area)

    Canvas	canvas;
    Xv_Window	window;
    Rectlist	*repaint_area;
{
    ArgType	arg;

    arg = (ArgType)xv_get(canvas, WIN_CLIENT_DATA);	/* arg を取り出す */
    ........
}


window でなく panel item に変数を張り付けたい時は、PANEL_CLIENT_DATA を
使います。また、複数の変数を張り付けたい時は、XV_KEY_DATA 属性が使えます。
ちょっと面倒ですが、これによってほとんどの大域変数を避けることができると
思います。

詳しくは、"XView Programming Manual" の 7.16 を御覧下さい。


電子技術総合研究所 知能システム部 視覚情報研究室    植芝俊夫
E-Mail: ueshiba@etl.go.jp
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads