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

Đề tài: Code bắt kí tự từ bàn phím, các bạn giải thích giúp?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    80

    Mặc định Code bắt kí tự từ bàn phím, các bạn giải thích giúp?

    Mình mới có được 1 đoạn code bắt kí tự từ bàn phím.
    Nhưng mình không hỉu lắm nhờ các pro giải thích giúp mình được không. Thanks các pro nhiều.

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    if (keyData == (Keys.Alt | Keys.F4))
    {
    MessageBox.Show("Alt + F4 catched!");
    return true; // The key is manually processed
    }
    else
    return base.ProcessCmdKey(ref msg, keyData);
    }

  2. #2
    Ngày gia nhập
    03 2008
    Nơi ở
    Hồ chí minh
    Bài viết
    134

    Mình cũng đang học ngôn ngữ này,theo mình nghĩ cái code này có thể hiểu như sau:
    Code:
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)//keydata là key nhận từ bàn phím;
    {
    if (keyData == (Keys.Alt | Keys.F4)) //nếu key nhận vào bằng Alt "or"(phép or) F4.có thể đây cách bắt tổ hợp phím,
    {
    MessageBox.Show("Alt + F4 catched!"); // hiện  thông báo 
    return true; // The key is manually processed
    }
    else
    return base.ProcessCmdKey(ref msg, keyData);//nếu sai tiếp tục bắt lại phím(hàm này tương ứng với đệ quy đó bạn)!.
    }
    Every step I'm taking
    Every move I make
    Feels lost with no direction
    My faith is shaking
    But I gotta keep trying.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    80

    Thanks bạn rất nhiều nha!
    Có cái câu cuối có cấu trúc ngộ quá :
    return base.ProcessCmdKey(ref msg, keyData)
    cái này là gọi lại chính nó ( đệ quy mà bạn nói đó) mà trong C++ gọi hàm thì chỉ cần return ProcessCmdkey(....) nên có ý nghĩa của base mình không hiểu lắm!!!

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    36

    Bạn để ý tên hàm của nó có chữ override
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    nó sẽ thực thi trước hàm
    privated bool ProcessCmdKey(ref Message msg, Keys keyData)
    sau đó gọi lệnh return base.................
    return base.ProcessCmdKey(ref msg, keyData);
    sẽ trả lại hàm gốc để chương trình vẫn thực thi đúng
    Giải thích hơi khó hiểu mong mọi người thông cảm

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

  1. 1 đoạn code ngã tư giao thông, giúp mình sửa lỗi?
    Gửi bởi effective trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-06-2013, 04:34 PM
  2. Kỹ thuật C [Hỏi] Giải thích đoạn code do...while giúp mình
    Gửi bởi mt7m trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 16-01-2013, 09:53 PM
  3. Bực mình nhỉ, đoạn code đơn giản này mà không ai giúp được mình sao?
    Gửi bởi conga2012 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 04-12-2012, 01:01 AM
  4. Sửa giúp code chương trình từ điển đơn giản
    Gửi bởi meeokon trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 01-11-2010, 11:57 PM
  5. lỗi code giải phương trình bậc 2. Giúp sửa
    Gửi bởi thanh92_d10cn4 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 10-10-2010, 07:34 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