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

Đề tài: Nhấn và giữ phím bị delay?

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    5

    Mặc định Nhấn và giữ phím bị delay?

    Em xin giải thích tiêu đề ạ

    Em có chương trình thế này ạ, khi chương trình đang chạy:
    - Nếu bấm phím Esc thì thoát chương trình.
    - Nếu bấm phím W (hoặc w) thì in ra kí tự W (hoặc w)
    - Nếu bấm phím S (hoặc s) thì in ra kí tự S (hoặc s) rồi sang dòng mới

    Vấn đề của em là: khi em bấm và giữ nguyên phím (S hoặc W) thì nó in ra 1 ký tự, sau đó nó chờ khoảng 1 giây rồi mới in ra các ký tự 1 cách liên tiếp.

    -> Làm sao để khi ấn và giữ nguyên phím thì nó in liên tục ngay từ đầu luôn ạ? Tức là không bị delay ký tự đầu tiên á

    Code chương trình:

    C++ Code:
    1. #include <iostream>
    2. #include <conio.h>
    3.  
    4. using namespace std;
    5.  
    6. bool appIsRunning = true;
    7.  
    8. int main()
    9. {
    10.     while(appIsRunning)
    11.     {
    12.         if(_kbhit())                                //Nếu có sự kiện bấm phím
    13.         {
    14.             char c = getch();
    15.             if(c == 27)                             //Nếu là ký tự Esc
    16.                 appIsRunning = false;               //thì gán appIsRunning là false
    17.             else if(c == 'w' || c == 'W' )          //Nếu là ký tự w/W
    18.                 cout<<c;                            //thì in ra
    19.             else if(c == 's' || c == 'S')           //Nếu là ký tự s/S
    20.                 cout<<c<<endl;                      //thì in ra rồi sang dòng mới
    21.         }
    22.     }
    23.     return 0;
    24. }

  2. #2
    Ngày gia nhập
    05 2012
    Bài viết
    2

    Mình thấy trong các trình soạn thảo khác cũng như thế, chắc thiết kế chung để người dùng có cảm giác ko quá nhanh.

  3. #3
    Ngày gia nhập
    09 2011
    Bài viết
    5

    hix hem ai biết sao :((

    Trích dẫn Nguyên bản được gửi bởi hoangvu171819 Xem bài viết
    Mình thấy trong các trình soạn thảo khác cũng như thế, chắc thiết kế chung để người dùng có cảm giác ko quá nhanh.
    nó chỉ delay ký tự đầu thui, sau đó vẫn như cũ, nên em nghĩ nếu ko delay thì chắc mình cũng chẳng thấy nhanh hơn đâu, hix :((

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Trích dẫn Nguyên bản được gửi bởi brandy253 Xem bài viết
    Em xin giải thích tiêu đề ạ

    Em có chương trình thế này ạ, khi chương trình đang chạy:
    - Nếu bấm phím Esc thì thoát chương trình.
    - Nếu bấm phím W (hoặc w) thì in ra kí tự W (hoặc w)
    - Nếu bấm phím S (hoặc s) thì in ra kí tự S (hoặc s) rồi sang dòng mới

    Vấn đề của em là: khi em bấm và giữ nguyên phím (S hoặc W) thì nó in ra 1 ký tự, sau đó nó chờ khoảng 1 giây rồi mới in ra các ký tự 1 cách liên tiếp.

    -> Làm sao để khi ấn và giữ nguyên phím thì nó in liên tục ngay từ đầu luôn ạ? Tức là không bị delay ký tự đầu tiên á

    Code chương trình:

    C++ Code:
    1. #include <iostream>
    2. #include <conio.h>
    3.  
    4. using namespace std;
    5.  
    6. bool appIsRunning = true;
    7.  
    8. int main()
    9. {
    10.     while(appIsRunning)
    11.     {
    12.         if(_kbhit())                                //Nếu có sự kiện bấm phím
    13.         {
    14.             char c = getch();
    15.             if(c == 27)                             //Nếu là ký tự Esc
    16.                 appIsRunning = false;               //thì gán appIsRunning là false
    17.             else if(c == 'w' || c == 'W' )          //Nếu là ký tự w/W
    18.                 cout<<c;                            //thì in ra
    19.             else if(c == 's' || c == 'S')           //Nếu là ký tự s/S
    20.                 cout<<c<<endl;                      //thì in ra rồi sang dòng mới
    21.         }
    22.     }
    23.     return 0;
    24. }
    cái này bạn học win32api bắt mấy thông điệp về bàn phím thì có thể làm như bạn muốn
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    cái này bạn học win32api bắt mấy thông điệp về bàn phím thì có thể làm như bạn muốn
    cám ơn anh, để em kiếm sách học.

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

  1. hàm delay trong BC 5.2, giúp mình hàm delay với
    Gửi bởi comeonbaby trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 23-09-2011, 03:46 PM
  2. Sử dụng kết hợp 2 lệnh Delay();
    Gửi bởi minhtuan99bk trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 16-06-2010, 03:50 PM
  3. Hàm Delay với Borland C++ v5.5
    Gửi bởi elliwood trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 28-03-2009, 08:17 PM
  4. Lỗi hàm delay()
    Gửi bởi thongnlkh_aptech trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 13-03-2009, 06:35 PM
  5. Cần hiểu về vấn đề delay 1 hàm
    Gửi bởi donallinh trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 26-08-2008, 06:19 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