Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: Cách bắt phím Enter khi gõ text vào combobox trong Win32 API?

  1. #1
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Mặc định Cách bắt phím Enter khi gõ text vào combobox trong Win32 API?

    Các Bro cho mình hỏi : Khi gõ text vào ô Combo box (để tìm kiếm), làm thế nào để khi kết thúc bằng phím Enter là nó xuất ra thông báo trên màn hình ?
    Thanks !!!

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

    tại sự kiện keypress của nơi bạn tìm kiếm, gõ vào code như sau
    C Code:
    1.  if(e->KeyChar==VK_RETURN)
    2.  {
    3.      MessageBox::Show("ban da bam phim enter");
    4.  }
    Trước khi là PRO thì chắc chắn sẽ là CON GÀ
    Và mình thì đang ở mức độ CON GÀ

  3. #3
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Em có đoạn code sau:
    C++ Code:
    1. #define  IDC_COMBO_BOX        500
    2. static    wchar_t text[10];
    3. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    4. {
    5.     int wmId, wmEvent;
    6.     PAINTSTRUCT ps;
    7.     HDC hdc;
    8.     static HWND hwndCombo;
    9.     switch (message)
    10.     {
    11.     case WM_CREATE:
    12.        
    13.         hwndCombo = CreateWindowW(L"Combobox", NULL,
    14.             WS_CHILD | WS_VISIBLE | CBS_DROPDOWN | WS_TABSTOP,
    15.             100, 100, 200, 200, hWnd, (HMENU)IDC_COMBO_BOX,
    16.             NULL, NULL);
    17.         break;
    18.     case WM_KEYDOWN:
    19.        
    20.         switch(wParam)
    21.         {
    22.         case VK_RETURN:
    23.             {
    24.                 GetDlgItemText(hWnd, ID_COMBO_BOX, text, 10);
    25.                 MessageBox(NULL,text, L"Message", NULL);
    26.             }
    27.         break;
    28.         }
    29.         }
    30.     return 0;
    31. }
    Bác xem hộ em đoạn code hoạt động của phím Enter nhé

  4. #4
    Ngày gia nhập
    08 2012
    Bài viết
    71

    đoạn code của phím enter đây :
    C Code:
    1. case VK_RETURN:
    2.             {
    3.                 GetDlgItemText(hWnd, ID_COMBO_BOX, text, 10);
    4.                 MessageBox(NULL,text, L"Message", NULL);
    5.             }
    Trước khi là PRO thì chắc chắn sẽ là CON GÀ
    Và mình thì đang ở mức độ CON GÀ

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

    Trích dẫn Nguyên bản được gửi bởi shizuoka Xem bài viết
    đoạn code của phím enter đây :
    C Code:
    1. case VK_RETURN:
    2.             {
    3.                 GetDlgItemText(hWnd, ID_COMBO_BOX, text, 10);
    4.                 MessageBox(NULL,text, L"Message", NULL);
    5.             }
    Câu hỏi trên là hỏi về hoạt động của chương trình (xem vị trí bắt sự kiện VK_RETURN đã đúng chưa?)
    Ở đoạn code chương trình trên sau khi text ở combo box, chương trình không bắt được sự kiện VK_RETURN

    Bọn e muốn sau khi text vào combo, bấm enter thì sẽ hiện ra message chứa đoạn text vừa gõ
    Đã được chỉnh sửa lần cuối bởi ngduchuan : 14-12-2012 lúc 02:31 PM.

  6. #6
    Ngày gia nhập
    08 2012
    Bài viết
    71

    Mặc định Cách bắt phím Enter khi gõ text vào combobox trong Win32 API?

    mình ko hiểu. Ko hiểu ở chỗ là trong VC++ ( mình thì gọi là CLI / nhưng theo như người khác thì họ gọi là win form thì phải <--- ko rõ lắm ) đã hỗ trợ chuyện này, làm rất đơn giản.
    Bạn xem đoạn clip tại : http://www.youtube.com/watch?v=tDUBP-XzA70 ( vui lòng ko mở loa - lúc quay phim lại ko tắt đi âm thanh nên sẽ có nhiều âm thanh vô nghĩa gây khó chịu ^-^ )
    Trước khi là PRO thì chắc chắn sẽ là CON GÀ
    Và mình thì đang ở mức độ CON GÀ

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    14

    @truongnguyen89 : bạn đã bắt được phím enter trong combo box chưa? cho mình tham khảo code demo với
    Thanks

  8. #8
    Ngày gia nhập
    12 2012
    Bài viết
    7

    Cách 1 : Bạn tạo một nút bấm với thuộc tính mặc định (chẳng hạn là phím tên "Enter"), đặt ID (nếu muốn) rồi xử lí lệnh đó.
    Tiếng anh nút chọn là "Default Button", tick vào đó.

    Nếu không thành công thì bạn có thể sử dụng (tham khảo qua Internet) :

    C++ Code:
    1. #define IsKeyDown(vkey) (GetAsyncKeyState(vkey) & 0x8000) //Kiểm tra một phím có được gõ hay không
    2. #define Enter 13 //Phím Enter
    3.  
    4.  
    5. //Trong vòng lặp
    6. if(IsKeyDown(Enter))
    7. {
    8. //char text[100];
    9. GetDlgItemText(hWnd, ID_COMBO_BOX, text, 10); //Giả sử nếu TextBox control của bạn có mã ID là ID_COMBO_BOX
    10. MessageBox(NULL,text, L"Message", NULL);
    11. }

  9. #9
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Cần suy nghĩ rõ ràng vấn đề: Nếu muốn đón nhận message khi gõ phím enter lên Text của ComboBox thì cần phải hiểu:
    1. Khi gõ phím Enter, ComboBox sẽ hiểu là 1 ký tự (chỉ có là không hiển thị lên) vậy muốn xem người dùng gõ ký tự gì lên ComboBox thì cần cái gì? Những Message nào raise khi mà 1 ký tự được gõ lên ComboBox? (Đừng hỏi làm sao nhé, Kevin chẳng có thời gian viết code đâu)

    2. Nếu muốn xem người dùng gõ phím gì lên Window thì bạn cần phải hook (Cơ bản thì có thể tìm ví dụ trên diễn đàn cộng đồng C Việt)

    3. Hiểu nó là 1 command, coi nó là Ok button như bạn codefighter đã đưa ra, nhưng không cần làm như bạn codefighter mà đón nhận WM_COMMAND rồi xử lý! (Cũng đơn giản)

    4. Có lẽ là còn có vài cách khác, nhưng Kevin không có đủ 'tâm tư' để nghĩ thêm... hj hj!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  10. #10
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    theo mình thì truongnguyen89 nên hiểu là : trong khi gõ phím ở Combo box thì chính Combobox sẽ nhận các sự kiện liên quan: như sự kiện gõ phím
    bây giờ bạn chỉ cần đăng kí nhận message WM_KEYUP cho Combo box và xử lý khi wParam==VK_CONTROL là xong

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

  1. Kỹ thuật C++ Cách tạo ComboBox trong ListView Win32?
    Gửi bởi kenzso trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 22-06-2013, 04:50 PM
  2. Lọc dữ liệu trong combobox khi nhập text?
    Gửi bởi nguyenvantien87 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 11-04-2013, 05:58 PM
  3. So sánh text với danh sách các item trong combobox C#?
    Gửi bởi princelonely9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 25-04-2012, 11:05 AM
  4. Cách Sử Dụng Lớp ListView và ComboBox trong win32 API
    Gửi bởi long_long trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 1
    Bài viết cuối: 22-03-2011, 10:59 AM
  5. Đọc file text trong VC++ Win32
    Gửi bởi KFC trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 09-05-2008, 10:38 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