¸®´ª½º ±âŸ ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   X-Windows Programming #3 1998/07/04 (16:28)
À̸§ ±èÈ¿¿ø
¹øÈ£ 42
Á¶È¸ 315
º»¹®
¡º¸®´ª½º Çдç-¸®´ª½º °­Á / ¿¬Àç (go LINUX)¡» 227¹ø
Á¦  ¸ñ:[°­Á 03] X ÇÁ·Î±×·¡¹Ö ±âÃÊ : Xlib                          
¿Ã¸°ÀÌ:geoman  (À̸¸¿ë  )    96/03/23 11:42    ÀÐÀ½:2356 °ü·ÃÀÚ·á ¾øÀ½
-----------------------------------------------------------------------------


/* â À§¿¡ â ÀÖ°í, ⠾Ʒ¡ â ÀÖ½À´Ï´Ù */

5) ⠾ȿ¡ ¶Ç âÀ» ¸¸µé¾î º¾½Ã´Ù.

¹Ù·Î Àü °­ÀÇ¿¡¼­ ¾ÆÁÖ °£´ÜÇÑ Ã¢ Çϳª¸¦ ¸¸µé¾î º¸¾ÒÁö¿ä. À̹ø¿¡´Â ±× ⠾ȿ¡´Ù
´Ù¸¥ ÀÛÀº âµéÀ» ¿©·¯ °³ ¸¸µé¾î º¸±â·Î ÇÏ°Ú½À´Ï´Ù.

¿¹Á¦ 3)

#include <X11/Xlib.h>

main()
{
Display *d ;
Window root, p, w1, w2, w3 ;
unsigned long Black, White ;

d = XOpenDisplay (NULL);

/* ÁÖ ÇÁ·Î±×·¥ ºÎºÐ ½ÃÀÛ */
root = DefaultRootWindow(d);
Black = BlackPixel(d,0);
White = WhitePixel(d,0);

p  = XCreateSimpleWindow (d, root, 100, 100,
600, 400, 2, Black, White );
w1 = XCreateSimpleWindow (d, p, 50, 50,
200, 150, 2, Black, White );
w2 = XCreateSimpleWindow (d, p, 200, 100,
200, 150, 2, Black, White );
w3 = XCreateSimpleWindow (d, p, 350, 200,
200, 150, 2, Black, White );
XMapWindow(d, p);
XMapWindow(d, w1);
XMapWindow(d, w2);
XMapWindow(d, w3);

XFlush(d);
sleep(3);

XDestroySubwindows(d, p);
XDestoryWindow(d, p);
/* ÁÖ ÇÁ·Î±×·¥ ºÎºÐ ³¡ */

XCloseDisplay (d);
}

ÀÌÁ¦´Â ¿¹Á¦ ÇÁ·Î±×·¥ÀÌ Á¡Á¡ º¹ÀâÇØÁö´Â °Í °°°í, ½ÇÁ¦ ÇÁ·Î±×·¥ °°¾ÆÁö´Â±º¿ä.
ÇÏÁö¸¸ ±âº» »À´ë´Â º¯ÇÔÀÌ ¾ø½À´Ï´Ù! Á¦°¡ /* */·Î Ç¥½ÃÇÑ ºÎºÐ¸¸ÀÌ ´Ã¾úÀ» »Ó, ¿ì
¸®´Â Ç×»ó 1. ¼­¹ö¿¡ Á¢¼Ó, 2. ¼­¹ö¿¡ ¿äû, 3. ¼­¹ö¿Í Á¢¼Ó ÇØÁ¦ ¶ó´Â ±âº»ÀûÀÎ µî
½ÄÀ» ¸Ó¸® ¼Ó¿¡ µÎ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.


5-1) ¸ðµç âÀº ÀÚ½ÄâÀ» ¿©·¯ °³ °¡Áú ¼ö ÀÖ´Ù.

¸ðµç âÀÇ ºÎ¸ðâÀº °á±¹ ·çƮâÀÔ´Ï´Ù. ±× ⠾ȿ¡¼­ ¸ðµç ÀÚ½ÄâµéÀÌ »ý¼ºµÇ°í
Ç¥½ÃµË´Ï´Ù. ¶Ç ±× ÀÚ½ÄâµéÀº ¹Ù·Î ¶È°°Àº °úÁ¤À» ÅëÇؼ­ ÀÚ±â ÀÚ½ÅÀÇ ÀÚ½ÄâµéÀ»
°¡Áú ¼ö ÀÖ½À´Ï´Ù. ¸¶Áö¸· ´Ü°èÀÇ ÀÚ½Äâµéµµ ¶ÇÇÑ ¸¶Âù°¡Áö·Î... ±×·¯ÇÑ ¿ø¸®¸¦ ÀÌ
¹ø ¿¹¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. »ê¾ÆÁ¦ÇÑ °°Àº °Ç ÇÊ¿ä¾ø°ÚÁÒ? :)

Window Çü º¯¼ö root, p, w1, w2, w3 ÀÌ·¸°Ô ´Ù¼¸°³¸¦ ¼±¾ðÇصξú½À´Ï´Ù.
root´Â DefaultRootWindow()¶ó´Â ¸ÅÅ©·Î¸¦ ÅëÇؼ­ ÇöÀç ·çƮâÀÇ ID¸¦ ±â¾ïÇÏ°í ÀÖ
½À´Ï´Ù. ù¹ø° XCreateSimpleWindow ÇÔ¼ö¸¦ ÅëÇؼ­ ·çƮâÀÇ ÀÚ½ÄâÀ¸·Î¼­ p âÀ»
¸¸µé¾ú½À´Ï´Ù. µÎ¹ø° °°Àº ÇÔ¼ö¸¦ ÅëÇؼ­ À̹ø¿¡´Â À§¿¡¼­ ¸¸µé¾î ³õÀº p âÀ» ºÎ¸ð
âÀ¸·Î ÇÏ´Â ÀÚ½Äâ w1 À» ¸¸µé¾ú½À´Ï´Ù. °°Àº °úÁ¤À» ÅëÇؼ­ p âÀÇ ÀÚ½Äâµé w2,
w3¸¦ ¼­¹ö Ãø¿¡ ¸¸µé¾î ³õ¾Ò½À´Ï´Ù.
±ÍÂúÀ¸½Ã´õ¶óµµ â»ý¼º ÇÔ¼öµé¿¡ ÁÖ¾îÁø XY ÁÂÇ¥, â Å©±â¸¦ º¸½Ã°í âÀÌ ¾î¶»°Ô ³ª
Ÿ³¯ °ÍÀÎÁö¸¦ ¿¹ÃøÇغ¸½Ê½Ã¿ä. << Àá±ñ »ý°¢Áß... >>

ÄÄÆÄÀÏ ¹æ¹ýÀº ÀÌÀü°ú µ¿ÀÏÇÕ´Ï´Ù.

À̹ø ¿¹Á¦¿¡¼­´Â Black, White¶ó´Â unsigned long Çü º¯¼ö µÎ °³¸¦ ¼±¾ðÇسõ°í´Â
Àü¹ø ¿¹Á¦¿¡¼­µµ ¼±º¸ÀÎ ÀûÀÌ ÀÖ´Â BlackPixel(), WhitePixel()À̶ó´Â ¸ÅÅ©·Î¸¦ ½á
¼­ °¢°¢ °ËÁ¤°ú Èò»öÀ» ³ªÅ¸³»´Â ¼öÄ¡¸¦ ÀúÀåÇÏ°í ÀÖ½À´Ï´Ù. â »ý¼ºÇÔ¼ö°¡ ¿©·¯ ¹ø
¾²¿´À¸¹Ç·Î ±× ¶§¸¶´Ù »ö»ó ÁöÁ¤ºÎºÐ¿¡ ¸ÅÅ©·Î¸¦ ½áÁֱ⠺¸´Ù´Â º¯¼ö¿¡ ÀúÀåÇصΰí
±× º¯¼öÀÇ ÀúÀå°ªÀ» »ç¿ëÇÏ°íÀÚ Çß½À´Ï´Ù. º° °Ç ¾Æ´ÏÁÒ.

ÀÚ, ¼­¹öÃø¿¡ ¸¸µé¾î ³õÀº âµéÀ» ³ªÅ¸³» ºÁ¾ß°ÚÁÒ? :)

XMapWindow ÇÔ¼ö¸¦ ÅëÇؼ­ µð½ºÇ÷¹ÀÌ d ¿¡ ÀÚ½Äâ p ¸¦ Ç¥ÇöÇÕ´Ï´Ù.
±× ´ÙÀ½ 3°³ÀÇ ¹®Àåµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. µð½ºÇ÷¹ÀÌ d ¿¡ w1, w2, w3¸¦ Ç¥ÇöÇÕ´Ï´Ù.
w1, w2, w3´Â p âÀÇ ÀÚ½Äâµé·Î µî·Ï,»ý¼ºµÇ¾î Àֱ⠶§¹®¿¡ p ⠾ȿ¡ Ç¥ÇöµË´Ï´Ù.
±×¸®°í, ¸»¾¸Àº ¾Èµå·ÈÁö¸¸ ÀÚ½ÄâµéÀÇ ÁÂÇ¥°è´Â ¹Ù·Î Àü ºÎ¸ðâÀÇ ÁÂÇ¥°è¸¦ ±âÁØ
À¸·Î ÇÕ´Ï´Ù. ºÎ¸ðâÀÇ ¿ÞÂÊ À­±¸¼®ÀÌ ÀÚ½ÄâµéÀÇ ¿øÁ¡(0,0)ÀÌ µÇ´Â °ÍÀÌÁö¿ä.


5-2) ÀÚ½ÄâµéÀ» ÇѲ¨¹ø¿¡ ³ªÅ¸³»ÀÚ.

»ç½Ç ¸¶Áö¸· 3°³ÀÇ ¹®ÀåÀº ¾à°£ ¼ÒºñÀûÀÎ ¹®ÀåÀÔ´Ï´Ù. âÀÇ »ý¼º°ú Ç¥½Ã¶ó´Â °úÁ¤
Àº º°°³ÀÇ °úÁ¤À̹ǷÎ, ÀÏ´Ü »ç¿ëÀ» À§Çؼ­ ¸î °³¸¦ »ý¼º½ÃÄѳõÀº ÈÄ, ±× ¶§ ±× ¶§
¿øÇÏ´Â ÀÚ½Äâµé¸¸ Ç¥½ÃÇÒ ¶§´Â XMapWindow ÇÔ¼ö¸¦ ½á¾ß ÇÏ°ÚÁö¸¸, ¸¹Àº °æ¿ì ÇѲ¨
¹ø¿¡ ÀÚ½ÄâµéÀ» ¸ù¶¥ Ç¥½ÃÇÏ°íÀÚ ÇÒ ¶§°¡ ¸¹°í, ±× °æ¿ì¿¡´Â Âü ¹ø°Å·ÓÁÒ?
±×·¡¼­ ¿©±â¼­ »õ·Î¿î ÇÔ¼ö Çϳª¸¦ ¼Ò°³½ÃÄÑ µå¸®°íÀÚ ÇÕ´Ï´Ù.

ÇÔ¼öÀÇ ¿øÇü : XMapSubwindows ( Display * d, Window w );

µð½ºÇ÷¹ÀÌ d ¿¡¼­ â w ÀÇ ¸ðµç ÀÚ½ÄâµéÀ» ÀÏ°ýÀûÀ¸·Î È­¸é¿¡ Ç¥½ÃÇÕ´Ï´Ù.
Æí¸®¸¦ À§ÇØ Á¦°øµÇ´Â ÇÔ¼öÀÌÁö¿ä.

¾ÕÀ¸·Îµµ ¸¹Àº ÇÔ¼öµéÀÌ ±â´ÉÀº °ÅÀÇ °°À¸¸é¼­ ÀÌ·¸°Ô »ç¼ÒÇÏ°Ô ´Ù¸¥ ¿©·¯ °¡Áöµé
·Î ¸¶·ÃµÇ¾î ÀÖ´Ù´Â °ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.


5-3) ¾µ¸ð¾ø´Â ÀÚ¿øÀº ¾ø¾ÖÀÚ.

ÇÔ¼öÀÇ ¿øÇü : XDestroyWindow ( Display *d, Window p );
ÇÔ¼öÀÇ ¿øÇü : XDestroySubwindows ( Display *d, Window p );

âÀ» Æı«Çعö¸®¶ó°í(Destory) ¿äûÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ´õ ÀÌ»ó Ç¥½ÃÇÒ ÇÊ¿ä°¡ ¾ø¾î
Áø âµéÀº ÀÚ¿øÀý¾àÀ» À§Çؼ­¶óµµ(¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ°í ÀÖÀ¸´Ï±î¿ä) Á¦ ¶§ ¾ø¾ÖÁÖ´Â
°ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. À§¿¡¼­º¸¸é µÎ Á¾·ùÀÇ À¯»çÇÑ ÇÔ¼ö°¡ Àִµ¥, ù¹ø° °ÍÀº ÁöÁ¤
µÈ ÇϳªÀÇ Ã¢À» ¾ø¾Ö´Â °ÍÀÌ°í, µÎ¹ø°´Â ±× âÀÌ Æ÷ÇÔÇÏ°í ÀÖ´Â ¸ðµç ÀÚ½ÄâµéÀ»
ã¾Æ¼­ ¾ø¾ÖÁÖ´Â °ÍÀÔ´Ï´Ù. ¹°·Ð ÀÚ½Äâµé Áß¿¡¼­ ¼±º°Çؼ­ ¾ø¾Ö·Á°í ÇÏ½Å´Ù¸é ´ç
¿¬È÷ Çϳª¾¿ ¾ø¾Ö´Â ÇÔ¼öÀΠù¹ø° °ÍÀ» ¾²½Ç ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù.

[¹Ù·Î Àü °­ÀÇ Áú¹®¿¡ ´ëÇÑ ´ä]

 Å°º¸µå ÀÔ·Â ¶ÇÇÑ ¹öÆÛ¹æ½ÄÀ̹ǷΠ½ºÆäÀ̽º¹Ù¸¦ ¸î ¹ø Ãĺ¸¾ÒÀÚ ½ÇÁ¦·Î ÇÁ·Î±×·¥
¿¡´Â Àü´ÞÀÌ µÇÁö ¾Ê´Ù°¡ ¸®ÅÏÅ°¸¦ ¹ÞÀ¸¸é ÀϽÿ¡ Ç÷¯½¬µË´Ï´Ù.

[¿À´Ã °­ÀǸ¦ ¸¶Ä¡¸é¼­...]

 Á¤¸» º¸Àß °Í ¾ø´Â ÇÁ·Î±×·¥ ¿¹¶ó°í »ý°¢ÇÏ½Ç Áö ¸ð¸£°ÚÁö¸¸, Á¦°¡ º¸±â¿¡´Â X À©
µµ¿ì ÇÁ·Î±×·¡¹Ö¿¡¼­ âÀ» Ç¥½ÃÇÒ ÁÙ ¾Æ½Å´Ù¸é °ÅÀÇ ¹ÝÀº ¹è¿ì½Å °ÍÀ̶ó°í È®½ÇÈ÷
¸»¾¸µå¸± ¼ö ÀÖ½À´Ï´Ù. ´õ¿í °íÂ÷¿øÀûÀ¸·Î ¹öÆ°, ´ëÈ­»óÀÚ, ¸Þ´º µîÀÇ ±×·¡ÇÈ ÀÎÅÍ
ÆäÀ̽ºµµ °á±¹¿£ Àڱ׸¶ÇÑ Ã¢µéÀÇ °áÇÕÀÏ »ÓÀÔ´Ï´Ù. ³ªÁß¿¡ ¼Õ½±°Ô ¹Ù·Î ¿ì¸® °ç¿¡
ÀÖ´Â Athena Widget À̶ó°í ÇÏ´Â Æí¸®ÇÑ ÀÎÅÍÆäÀ̽º º¸µû¸®¸¦ »ç¿ëÇغ¸°Ô µÉ ÅÙµ¥
¿ä, ¾Æ¸¶µµ ¿©·¯ºÐ ½º½º·Î Á¤¸» »ö´Ù¸¥ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µé°í ½Í´Ù´Â »ý°¢ÀÌ µé°Ô
µÇ½Ç °Ì´Ï´Ù. ¾öû³­ ÀÎÅÍÆäÀ̽ºÀÇ ÀÚÀ¯! ÀÌ°ÍÀº X À©µµ¿ì°¡ ´Ù¸¥ ¾î¶² GUI ½Ã½ºÅÛ
º¸´Ùµµ °³¹æÀûÀÓÀ» Áõ¸íÇغ¸ÀÌ°Ô µÉ °Ì´Ï´Ù. ±â´ëÇØÁÖ¼¼¿ä.

 ÀÌ Â©¸·ÇÑ ¿¹¸¦, ÀÌ ¿¹¿¡¼­ º¸ÀÌ´Â ¼ø¼­¸¦ ²À ÀÌÇØÇÏ½Ã°í ¸Ó¸® ¼Ó¿¡ Ç×»ó ±â¾ïÇØ
Áֽʽÿä. ¾ÆÁÖ Áß¿äÇÑ ÆÐÅÏ Áß¿¡ ÇϳªÀÔ´Ï´Ù.

 ´ÙÀ½¿¡ ºË°Ú½À´Ï´Ù.

HomePage Backward Forward Post Reply List
1998 by swindler