Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Thiết kế menu nhận click chuột trong C++

  1. #1
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    Thumbs down Thiết kế menu nhận click chuột trong C++

    Chào các bạn!
    Mình xin giới thiệu cho các bạn biết về cách để 1 chương trình C++ của bạn có thể nhận click chuột.
    Có nhiều dạng code để làm được việc đó. Mình chia sẻ một cách đơn giản sau:
    Chương trình của chúng ta sẽ gồm 2 nút bấm. Các bạn sẽ đưa chuột và click vào đấy, chương trình sẽ thực hiện chức năng tương ứng.
    Dao diện trông thế này:

    Các bước thực hiện


    i. Hàm hiển thị nút bấm:
    C++ Code:
    1. void Mouse::Show()
    2. {
    3.     int x=20,y=10;
    4.     gotoxy(25,5); textcolor(10);
    5.     cprintf("YOU HAS TWO BUTTON");
    6.     VarButton(BUTTON1,"[   BUTTON1   ]",x,y);
    7.     VarButton(BUTTON2,"[   BUTTON2   ]",x+20,y);
    8.     ShowButton(BUTTON1);
    9.     ShowButton(BUTTON2);
    10. }
    ii. Hàm xác nhận click chuột:
    C++ Code:
    1. void Mouse::EnterClick()
    2. {
    3.     do
    4.     {
    5.         MOUSE_THERE=1;
    6.         if(kbhit()) getch();
    7.         get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse);
    8.     }while(lbutton==0);
    9. }
    iii. Hàm phân loại click cho từng chức năng thiết kế:
    C++ Code:
    1. int Mouse::Click()
    2. {
    3.     MOUSE_THERE=0;
    4.     if(ClickButton(BUTTON1,xmouse,ymouse))
    5.             {
    6.                 EffectClick(BUTTON1)    return 1;
    7.             }
    8.     if(ClickButton(BUTTON2,xmouse,ymouse))
    9.             {
    10.                 EffectClick(BUTTON2)    return 2;
    11.             }      
    12.    return 3;
    13. }
    iv. Chức năng người dùng thiết kế:
    C++ Code:
    1. void Mouse::Program()
    2. {
    3.     switch(Click())
    4.     {
    5.     case 1:
    6.     clrscr();
    7.     gotoxy(20,10); textcolor(10);
    8.     cprintf("YOU HAVE CLICK ON BUTTON 1. ENTER TO CONTINUE");
    9.     getch();
    10.     gotoxy(20,10);clreol();
    11.     break;
    12.     case 2:
    13.     clrscr();
    14.     gotoxy(20,10); textcolor(10);
    15.     cprintf("YOU HAVE CLICK ON BUTTON 2. ENTER TO EXIT");
    16.     getch();
    17.     gotoxy(20,10);clreol();
    18.     exit(1);
    19.     break;
    20.     }
    21. }
    v. Menu:
    C++ Code:
    1. void Mouse::Menu()
    2. {
    3.     while(1)
    4.     {
    5.         Show();
    6.         EnterClick();
    7.         Program();
    8.     }
    9. }
    OK, vậy là xong các hàm rồi nha, các bạn cứ đọc từ từ sẽ hiểu thôi, cũng không khó lắm nhỉ?
    Code:
    C++ Code:
    1. #include<string.h>
    2. #include<stdlib.h>
    3. #include<dos.h>
    4. #include"button.ta"
    5. #include<iostream.h>
    6. #include"mouse.inc"
    7. /*----------------------Dinh_Nghia_Doi_Tuong-------------------------------*/
    8. class Mouse
    9. {
    10.     private:
    11.     Button BUTTON1,BUTTON2;
    12.     public:
    13.     void Show();
    14.     void EnterClick();
    15.     int Click();
    16.     void Program();
    17.     void Menu();
    18. };
    19. /*-------------------Hien_Thi_Cac_Nut_Bam----------------------------------*/
    20. void Mouse::Show()
    21. {
    22.     int x=20,y=10;
    23.     gotoxy(25,5); textcolor(10);
    24.     cprintf("YOU HAS TWO BUTTON");
    25.     VarButton(BUTTON1,"[   BUTTON1   ]",x,y);
    26.       VarButton(BUTTON2,"[   BUTTON2   ]",x+20,y);
    27.       ShowButton(BUTTON1);
    28.     ShowButton(BUTTON2);
    29. }
    30. /*---------------------Nhan_Click_Chuot------------------------------------*/
    31. void Mouse::EnterClick()
    32. {
    33.     do
    34.     {
    35.         MOUSE_THERE=1;
    36.         if(kbhit()) getch();
    37.         get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse);
    38.     }while(lbutton==0);
    39. }
    40. /*-----------------------Phan_Loai_Click-----------------------------------*/
    41. int Mouse::Click()
    42. {
    43.     MOUSE_THERE=0;
    44.     if(ClickButton(BUTTON1,xmouse,ymouse))
    45.             {
    46.                 EffectClick(BUTTON1);/*sau khi click chuot thi doi mau khac*/      
    47.                 return 1;
    48.             }
    49.     if(ClickButton(BUTTON2,xmouse,ymouse))
    50.             {
    51.                 EffectClick(BUTTON2);/*sau khi click chuot thi doi mau khac*/      
    52.                 return 2;
    53.             }      
    54.             return 3;
    55. }
    56. /*------------------------Cac_Chuc_Nang_Cua_Chuong_Trinh-------------------*/
    57. void Mouse::Program()
    58. {
    59.     switch(Click())
    60.     {
    61.         case 1:
    62.             clrscr();
    63.             gotoxy(20,10); textcolor(10);
    64.             cprintf("YOU HAVE CLICK ON BUTTON 1. ENTER TO CONTINUE");
    65.             getch();
    66.             gotoxy(20,10);clreol();
    67.             break;
    68.         case 2:
    69.             clrscr();
    70.             gotoxy(20,10); textcolor(10);
    71.             cprintf("YOU HAVE CLICK ON BUTTON 2. ENTER TO EXIT");
    72.             getch();
    73.             gotoxy(20,10);clreol();
    74.             exit(1);
    75.             break;
    76.         }
    77. }
    78. /*--------------------------Menu_Chinh-------------------------------------*/
    79. void Mouse::Menu()
    80. {
    81.     while(1)
    82.     {
    83.         Show();
    84.         EnterClick();
    85.         Program();
    86.     }
    87. }
    88. /*---------------------------Chuong_Trinh_Chinh----------------------------*/
    89. int main()
    90. {
    91.     Mouse ob;
    92.     ob.Menu();
    93.     return 0;
    94. }
    95. /*------------------------------The_End------------------------------------*/
    Trong chương trình trên, bạn sử dụng 2 thư viện tự tạo, đó là:
    C++ Code:
    1. #include"button.ta"
    2. #include"mouse.inc"

    Đoạn code của các thư viện như sau:
    button.ta:
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. typedef struct
    4. {
    5.     int xbutton;
    6.     int ybutton;
    7.     char *name;
    8.     int statusbutton;
    9. }Button;
    10. void VarButton(Button &B,char *s,int x,int y)
    11. {
    12.     B.xbutton=x;
    13.     B.ybutton=y;
    14.     B.statusbutton=1;
    15.     B.name=s;
    16. }
    17. void ShowButton(Button B)
    18. {
    19.    if(B.statusbutton==1)
    20.    {
    21.     textbackground(15);
    22.     gotoxy(B.xbutton,B.ybutton);textcolor(LIGHTRED);cprintf("%s",B.name);
    23.     textbackground(BLACK);
    24.     }
    25. }
    26. void EnableButton(Button& B)
    27. {
    28.     B.statusbutton=1;
    29. }
    30. void DisableButton(Button& B)
    31. {
    32.     textbackground(15);
    33.     gotoxy(B.xbutton,B.ybutton);textcolor(LIGHTGRAY);cprintf("%s",B.name);
    34.     B.statusbutton=0;
    35.     textbackground(BLACK);
    36. }
    37. int ClickButton(Button B,int xchuot,int ychuot)
    38. {
    39.     if(B.statusbutton==1)
    40.     {
    41.         if(xchuot>=(B.xbutton-1)*8&&xchuot<=(B.xbutton+strlen(B.name)-1-1)*8&&ychuot==(B.ybutton-1)*8)
    42.         return 1;
    43.     }
    44.     return 0;
    45. }
    46. void EffectClick(Button B)
    47. {
    48.     gotoxy(B.xbutton,B.ybutton);textcolor(LIGHTCYAN+BLINK);cprintf("%s",B.name);
    49.     delay(200);
    50.     ShowButton(B);
    51. }
    52. void EffectClickNonButton(int x,int y)
    53. {
    54.     gotoxy(x,y);textbackground(WHITE);textcolor(WHITE);cprintf(".");
    55.     textbackground(BLACK);
    56.     delay(200);
    57. }
    mouse.inc:
    C++ Code:
    1. #define MV_LBUTTON 1
    2. #define MV_RBUTTON 2
    3. #define MV_BBUTTON 3
    4.  
    5. int NUMBER_BUTTONS = 2;
    6. int MOUSE_SIZE = 16;
    7.  
    8. unsigned char MOUSE_THERE;
    9. unsigned char MOUSE_VISIBLE;
    10.  
    11. unsigned char LBUTTON_DOWN,
    12.               RBUTTON_DOWN,
    13.               BBUTTON_DOWN,
    14.               LBUTTON_UP,
    15.               RBUTTON_UP,
    16.               BBUTTON_UP,
    17.               CURSOR_MOVED;
    18.  
    19. int CMX = 0,
    20.     CMY = 0;
    21. int BSTATE = 0;
    22.  
    23. union REGS mregs;
    24. struct SREGS msegregs;
    25.  
    26. unsigned char EGA_REG_READ = 1;
    27. unsigned char lbutton, rbutton;
    28. int xmouse, ymouse;
    29.  
    30. void reset_mouse()
    31. {
    32.   MOUSE_THERE = 0;
    33.   MOUSE_SIZE = 16;
    34.   MOUSE_VISIBLE = 0;
    35.   if (getvect(0x33) != 0L)
    36.   {
    37.     mregs.x.ax = 0;
    38.     int86(0x33, &mregs, &mregs);
    39.     if (mregs.x.ax != 0)
    40.     {
    41.       MOUSE_THERE = 1;
    42.       NUMBER_BUTTONS = mregs.x.bx;
    43.       LBUTTON_DOWN = 0;
    44.       RBUTTON_DOWN = 0;
    45.       BBUTTON_DOWN = 0;
    46.     }
    47.   }
    48. }
    49.  
    50. void show_mouse()
    51. {
    52.   if (MOUSE_THERE)
    53.   {
    54.     mregs.x.ax = 1;
    55.     int86(0x33, &mregs, &mregs);
    56.     MOUSE_VISIBLE = 1;
    57.   }
    58. }
    59.  
    60. void hide_mouse()
    61. {
    62.   if (MOUSE_THERE && MOUSE_VISIBLE)
    63.   {
    64.     mregs.x.ax = 2;
    65.     int86(0x33, &mregs, &mregs);
    66.     MOUSE_VISIBLE = 0;
    67.   }
    68. }
    69.  
    70. void get_mouse_button(unsigned char *lbutton, unsigned char *rbutton, int *x, int *y)
    71. {
    72.   if (MOUSE_THERE)
    73.   {
    74.     mregs.x.ax = 3;
    75.     int86(0x33, &mregs, &mregs);
    76.     *lbutton = (mregs.x.bx == 1) ? 1 : 0;
    77.     *rbutton = (mregs.x.bx == 2) ? 1 : 0;
    78.     if (mregs.x.bx == 3)
    79.       *rbutton = *lbutton = 1;
    80.     *x = mregs.x.cx;
    81.     *y = mregs.x.dx;
    82.   }
    83. }
    84.  
    85. unsigned char get_button_rls_info(int butt_no, int *count, int *x, int *y)
    86. {
    87.   if (MOUSE_THERE)
    88.   {
    89.       mregs.x.ax = 6;
    90.       mregs.x.bx = butt_no;
    91.       int86(0x33, &mregs, &mregs);
    92.       *count = mregs.x.bx;
    93.       *x = mregs.x.cx;
    94.       *y = mregs.x.dx;
    95.     if (butt_no == 0)
    96.       return (!(mregs.x.ax & 1));
    97.     else
    98.       return (!((mregs.x.ax & 2) >> 1));
    99.   }
    100.   return 0;
    101. }
    102.  
    103. void set_event_handler(int call_mask, void (far *location)(void))
    104. {
    105.   if (MOUSE_THERE)
    106.   {
    107.       mregs.x.ax = 12;
    108.       mregs.x.cx = call_mask;
    109.       mregs.x.dx = FP_OFF(location);
    110.       msegregs.es = FP_SEG(location);
    111.       int86(0x33, &mregs, &mregs);
    112.   }
    113. }
    114.  
    115. void set_hide_bound(int x1, int y1, int x2, int y2)
    116. {
    117.   if (MOUSE_THERE)
    118.   {
    119.       mregs.x.ax = 16;
    120.       mregs.x.cx = x1;
    121.       mregs.x.dx = y1;
    122.       mregs.x.si = x2;
    123.       mregs.x.di = y2;
    124.       int86(0x33, &mregs, &mregs);
    125.   }
    126. }
    127.  
    128. void set_mouse_position(int x,int y)
    129. {
    130.   if (MOUSE_THERE)
    131.   {
    132.       mregs.x.ax = 4;
    133.       mregs.x.cx = x;
    134.       mregs.x.dx = y;
    135.       int86(0x33, &mregs, &mregs);
    136.   }
    137. }
    138.  
    139. void set_mouse_hlimits(int x1,int x2)
    140. {
    141.   if (MOUSE_THERE)
    142.   {
    143.       mregs.x.ax = 7;
    144.       mregs.x.cx = x1;
    145.       mregs.x.dx = x2;
    146.       int86(0x33, &mregs, &mregs);
    147.   }
    148. }
    149.  
    150. void set_mouse_vlimits(int y1,int y2)
    151. {
    152.   if (MOUSE_THERE)
    153.   {
    154.       mregs.x.ax = 8;
    155.       mregs.x.cx = y1;
    156.       mregs.x.dx = y2;
    157.       int86(0x33, &mregs, &mregs);
    158.   }
    159. }
    160.  
    161. /*void far event_handler(void);
    162.  
    163. void near event_processor(int event_status, int button_status, int x, int y)
    164. {
    165.   if ((CMX != x) || (CMY != y))
    166.   {
    167.     CURSOR_MOVED = 1;
    168.     CMX = x;
    169.     CMY = y;
    170.   }
    171.  
    172.   BSTATE = button_status;
    173.  
    174.   if (event_status & 2)
    175.     LBUTTON_DOWN = 1;
    176.   if (event_status & 8)
    177.     RBUTTON_DOWN = 1;
    178.   if (((event_status & 2) || (event_status & 8)) && (button_status == 3))
    179.     BBUTTON_DOWN = 1;
    180.   if ((NUMBER_BUTTONS == 3) && (event_status & 32))
    181.     BBUTTON_DOWN = 1;
    182.   if (event_status & 4)
    183.     LBUTTON_UP = 1;
    184.   if (event_status & 16)
    185.     RBUTTON_UP = 1;
    186.   if (LBUTTON_UP & RBUTTON_UP)
    187.     BBUTTON_UP = 1;
    188.   if ((NUMBER_BUTTONS == 3) && (event_status & 64))
    189.     BBUTTON_UP = 1;
    190. }
    191.  
    192. void reset_event_handler(void)
    193. {
    194.   CURSOR_MOVED = 0;
    195.   LBUTTON_DOWN = LBUTTON_UP = 0;
    196.   RBUTTON_DOWN = RBUTTON_UP = 0;
    197.   BBUTTON_DOWN = BBUTTON_UP = 0;
    198. }
    199.  
    200. void install_event_handler(void)
    201. {
    202.   if (NUMBER_BUTTONS == 3)
    203.     set_event_handler(127, event_handler);
    204.   else
    205.     set_event_handler(31, event_handler);
    206. }*/
    Các bạn lưu 3 file trên vào mục BIN của BORLAN C, sau đó chạy thử để xem kết quả. Nếu bạn dùng WIN 7 thì bạn phải để BRLAN C vào mục cài win mới chạy được. Thường là ổ C. Sau đó bạn open with tệp menu và đặt mặc định mở các file code là BC trong BIN nhé!!
    Hi vọng bài hướng dẫn này sẽ giúp các bạn hiểu hơn về cách thiết kế để chương trình C++ của các bạn nhận click chuột.
    Code chương trình:
    http://www.mediafire.com/?8i2ce7qw8a4nwbo
    Cảm ơn các bạn đã theo dõi^^
    Đã được chỉnh sửa lần cuối bởi nang : 28-10-2011 lúc 07:11 PM.
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    Mặc định Thiết kế cho chương trình C++ nhận bàn phím

    Tiếp theo phần này, mình xin giới thiệu cách để chương trình của các bạn nhận bàn phím. Chương trình của chúng ta sẽ trông như sau:


    Cách làm
    Mình trình bày nguyên code của chương trình, trong đó đã có coment hướng dẫn chi tiết, nên các bạn cứ chầm chậm mà đọc nhé.
    C++ Code:
    1. /*---------------------------Thiet_Ke_Menu_5_List--------------------*/
    2. #include<string.h>
    3. #include<stdlib.h>
    4. #include<dos.h>
    5. #include<iostream.h>
    6. #define ListMax 5
    7. /*---------------------------Khai_Bao_Doi_Tuong----------------------*/
    8. class Menu
    9. {
    10.     private:
    11.     typedef char str[20];
    12.     str List[ListMax];
    13.     public:
    14.     int NhanKey();
    15.     int XuLyKey(int key,int n);
    16.     void TaoList();
    17.     void HienThi(int n,int row);
    18.     void XoaHienThi(int row);
    19.     void DeSign();
    20.     /*Phan cai dat chuc nang cho tung List*/
    21.     void List1();
    22.     void List2();
    23.     void List3();
    24.     void List4();
    25.     void List5();
    26. };
    27. /*---------------------------Nhan_Key_Ban_Phim-----------------------*/
    28. int Menu::NhanKey()
    29. {
    30.     int key;
    31.     key = getch();
    32.     if(key==0) key = getch();
    33.     return key;
    34. }
    35. /*--------------------------Xu_Ly_De_List_Quay_Vong------------------*/
    36. int Menu::XuLyKey(int key,int n)
    37. {
    38.     switch(key)
    39.         {
    40.             case 72:
    41.                     if(n>1) n--;else n = ListMax;
    42.                     break;
    43.             case 80:
    44.             if(n<ListMax) n++;else n = 1;
    45.             break;
    46.         }
    47.     return n;  
    48. }
    49. /*---------------------------Tao_List_De_In--------------------------*/
    50. void Menu::TaoList()
    51. {
    52.     strcpy(List[1],"[  List 1  ]");
    53.     strcpy(List[2],"[  List 2  ]");
    54.     strcpy(List[3],"[  List 3  ]");
    55.     strcpy(List[4],"[  List 4  ]");
    56.     strcpy(List[5],"[  List 5  ]");
    57. }
    58. /*-----------------------Hien_Thi_List_Hien_Tai----------------------*/
    59. void Menu::HienThi(int n,int row)
    60. {
    61. /*Hien thi Menu tai hang row. List[n] co mau khac voi cac List con lai*/
    62.     int i;
    63.     textcolor(GREEN);
    64.     for(i=1;i<=ListMax;i++)
    65.             {
    66.                 gotoxy(row,i);
    67.                 cprintf(List[i]);
    68.             }
    69.     /*Di den hang row, cot n va in List[n] co mau voi cac mau khac*/
    70.         gotoxy(row,n);
    71.         textcolor(RED);cprintf(List[n]);
    72. }
    73. /*-------------------Xoa_Hien_Thi_List_De_In_List_Tiep_Theo----------*/
    74. void Menu::XoaHienThi(int row)
    75. {
    76.     int i;
    77.     for(i=1;i<=ListMax;i++)
    78.         {
    79.             gotoxy(row-1,i);
    80.             clreol();
    81.         }
    82. }
    83. /*-------------------Ket_Hop_De_Co_Hien_Thi_Thich_Hop----------------*/
    84. void Menu::DeSign()
    85. {
    86.     int n=1,m=1;
    87.     TaoList();
    88.     while(1)
    89.         {
    90.             XoaHienThi(m);
    91.             HienThi(n,20);
    92.             m = n;
    93.             n = NhanKey();
    94.             if(n==13)
    95.                 {
    96.                     switch(m)
    97.                         {
    98.                             case 1: List1(); break;
    99.                             case 2: List2(); break;
    100.                             case 3: List3(); break;
    101.                             case 4: List4(); break;
    102.                             case 5: List5(); break;                
    103.                         }
    104.                 }
    105.             n = XuLyKey(n,m);
    106.         }
    107. }
    108. /*--------------------------Chuc_Nang_List_1------------------------*/
    109. void Menu::List1()
    110. {
    111.     gotoxy(10,10); textcolor(10);
    112.     cprintf("CHUC NANG CUA LIST 1. NHAN ENTER DE TEP TUC");
    113.     getch();
    114.     gotoxy(10,10); clreol();
    115. }
    116. /*--------------------------Chuc_Nang_List_2------------------------*/
    117. void Menu::List2()
    118. {
    119.     gotoxy(10,10); textcolor(10);
    120.     cprintf("CHUC NANG CUA LIST 2. NHAN ENTER DE TEP TUC");
    121.     getch();
    122.     gotoxy(10,10); clreol();
    123. }
    124. /*--------------------------Chuc_Nang_List_3-----------------------*/
    125. void Menu::List3()
    126. {
    127.     gotoxy(10,10); textcolor(10);
    128.     cprintf("CHUC NANG CUA LIST 3. NHAN ENTER DE TEP TUC");
    129.     getch();
    130.     gotoxy(10,10); clreol();
    131. }
    132. /*--------------------------Chuc_Nang_List_4-------------------------*/
    133. void Menu::List4()
    134. {
    135.     gotoxy(10,10); textcolor(10);
    136.     cprintf("CHUC NANG CUA LIST 4. NHAN ENTER DE TEP TUC");
    137.     getch();
    138.     gotoxy(10,10); clreol();
    139. }
    140. /*--------------------------Chuc_Nang_List_5-----------------------*/
    141. void Menu::List5()
    142. {
    143.     gotoxy(10,10); textcolor(10);
    144.     cprintf("CHUC NANG CUA LIST 5. NHAN ENTER DE EXIT");
    145.     getch();
    146.     gotoxy(10,10); clreol();
    147.     exit(1);
    148. }
    149. /*------------------Chuong_Trinh_Chinh----------------------------*/
    150. int main()
    151. {
    152.     Menu ob;
    153.     ob.DeSign();
    154.     return 0;
    155. }
    156. /*----------------------------The_End--------------------------------*/
    Mình đã đọc 1 đoạn code về sự kết hợp giữa hai cách trên, để chương trình vừa nhận bàn phím, vừa nhận chuột.
    Chương trình của nó bạn tải về xem thử:
    http://www.mediafire.com/?76a5qws50dswl34
    Tài liệu tham khảo:
    http://www.mediafire.com/?290vhx0bxhrqyaa
    http://www.mediafire.com/?8i2ce7qw8a4nwbo
    Nhưng như đã nói ở bài trước, mình mong mọi người có những góp ý, bổ sung cho mình. Cảm ơn mọi người đã theo dõi^^
    Đã được chỉnh sửa lần cuối bởi nang : 02-10-2012 lúc 10:36 AM. Lý do: die link
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

Các đề tài tương tự

  1. Tạo Menu khi click phải chuột trên C#?
    Gửi bởi thanh_it trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 08-04-2016, 04:52 PM
  2. Cách gọi controller khi click vào menu item trong MVC 3?
    Gửi bởi rossoneri trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 30-10-2012, 10:09 PM
  3. ADO.NET Thiết lập con trỏ trên datagridview khi click chuột vào một ô?
    Gửi bởi anhba90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 18-05-2011, 04:18 PM
  4. bắt sự kiện khi click chuột vào menu?
    Gửi bởi hnah trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 18-11-2010, 12:28 PM
  5. Sổ menu khi r-click chuột trong rick text box!
    Gửi bởi C_moi_hoc trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 11-06-2009, 09:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn