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

Đề tài: Cách sử dụng List control trong lập trình MFC?

  1. #1
    No Avatar
    htqh Khách

    Mặc định Cách sử dụng List control trong lập trình MFC?

    Cho em hỏi về List Control?Cụ thể là cách đọc dữ liệu từ 1 list control,chẳng hạn như là từ 1 bảng dữ liệu về sinh viên gồm tên,tuổi...vậy thì dùng lệnh gì ạ?

  2. #2
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Tức là lấy text của các SubItem của các Item trong list control hả bạn, nếu vậy thì dùng hàm ListView_GetItemText(...);

  3. #3
    No Avatar
    htqh Khách

    làm sao biết lấy ở cột nào hàng nào hả anh?Anh cho em 1 ví dụ cụ thể được không?Rồi còn những biến là số nguyên như tuổi,hay ngày tháng,khi ghi vào bảng em dùng lệnh Fomat vậy thì khi lấy ra thì làm sao để lấy nó là số nguyên ạ?

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    Rừng Amazon
    Bài viết
    101

    Mặc định CListControl, Item, SubItem, ItemData

    List Control.

    Các cột của list control đều có 1 chỉ số là SubItemIndex (nhìn cái tên chắc bạn đoán được.). Thông thường, sau khi tạo list và add columns, bạn sẽ có chỉ số này trùng với số thứ tự của columns trên list (sau này có nhu cầu đảo cột lung tung thì nó mới có sự khác biệt).

    Mỗi dòng của list control gọi là 1 item. Với mỗi item bạn có thể lấy thuộc tính text của nó (sẽ là text của cột có SubItemIndex = 0) bằng phương thức CListControl::GetItemText(...), và bạn cũng có thể lấy các thuộc tính text của các subitem của nó bằng CListControl::GetSubItemText(...). Bạn chỉ có 1 thuộc tính text thôi, và khi lấy về bạn muốn chuyển sang các format dữ liệu khác thì bạn phải tự convert.

    Tuy nhiên, theo như ý bạn thì thông thường khi hiển thị lên list control ta có 1 mảng dữ liệu của ta ở bộ nhớ trong, và khi hiển thị ta hiển thị. Điều này giúp ta ứng dụng được 1 tính năng khác rất "xịn" của các loại item trong WIN, đó là ItemData. Tức là mỗi item được phép có 1 vùng dữ liệu riêng kiểu DWORD = unsigned long , bạn có thể dùng nó để lưu con trỏ, để lưu chỉ số, để lưu ... tất cả những gì bạn muốn. Để get và set thuộc tính này bạn dùng CListControl::GetItemData(...) và CListControl::SetItemData(...)

  5. #5
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Trích dẫn Nguyên bản được gửi bởi htqh
    làm sao biết lấy ở cột nào hàng nào hả anh?Anh cho em 1 ví dụ cụ thể được không?Rồi còn những biến là số nguyên như tuổi,hay ngày tháng,khi ghi vào bảng em dùng lệnh Fomat vậy thì khi lấy ra thì làm sao để lấy nó là số nguyên ạ?
    Bạn search trong MSDN xem chắc là có sample về cái list control này đấy. Nhưng thông thường thì những gì hiển thị ra ở list control không được dùng làm dữ liệu để quản lý vì như bạn thấy đấy, convert qua lại rất mệt. Người ta sẽ xây dựng một lớp (struct cũng được) chứa các dữ liệu này, khi đó mỗi Item trong list control sẽ đại diện cho một object, như vậy việc quản lý thực chất là quản lý các object này. Vì vậy khi bạn muốn truy xuất dữ liệu ra một chỗ khác chứ không phải là list control thì bạn sẽ sử dụng các object này chứ không sử dụng list control.

    Hi vọng giúp được cho bạn.

  6. #6
    No Avatar
    htqh Khách

    Mặc định Cách sử dụng List control trong lập trình MFC?

    cảm ơn 2 bác đã giúp đỡ em nhiệt tình như vậy.Thực sự là em rất thiếu hiểu biết về list control(về các thuật ngữ),rất mong các bác chỉ giáo thêm!
    Cho em hỏi nữa,các bác có thể nói rõ hơn về sử dụng các object cho các item được không?Em cũng dùng class,em ghi 1 số đối tượng vào tệp rồi đọc ra và hiển thị ở list control,mỗi object tương ứng với 1 item!Theo em như làm như vậy thì cũng đâu có lấy ra được số nguyên hay là số thực từ list control ?

  7. #7
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Trích dẫn Nguyên bản được gửi bởi htqh
    Cho em hỏi nữa,các bác có thể nói rõ hơn về sử dụng các object cho các item được không?Em cũng dùng class,em ghi 1 số đối tượng vào tệp rồi đọc ra và hiển thị ở list control,mỗi object tương ứng với 1 item!Theo em như làm như vậy thì cũng đâu có lấy ra được số nguyên hay là số thực từ list control ?
    Có vẻ như bạn vẫn chưa rõ việc lưu các đối tượng này lại để làm gì thì phải Tại sao lại lấy ra số nguyên, số thực từ list control? Bạn phải lấy ra từ mảng (list, hay cái gì đó) các đối tượng này chứ.
    Giả sử bạn lấy số nguyên lưu ở subItem "tên" của Item thứ 10 trong list control thì bạn sẽ phải lấy m_iName của object ở vị trí thứ 10 trong cái danh sách các object mà bạn lưu. OK?

  8. #8
    No Avatar
    htqh Khách

    Tùy mỗi yêu cầu của mỗi chương trình mà có phải lấy ra từ list control hay không chứ anh!
    À,mọi người chỉ dùm em cách xóa 1 item luôn nha,tức là ta chọn 1 item nào đó(bằng cách click chuột vào item đó) rồi xóa đi item vừa chọn!Em không biết cách nào để lấy được chỉ số dòng của item vừa chọn!

  9. #9
    Ngày gia nhập
    10 2006
    Nơi ở
    Rừng Amazon
    Bài viết
    101

    Visual C++ Code:
    1. int index;
    2. POSITION pos = list.GetFirstSelectedItem();
    3. if (pos) // null if no item has been selected
    4. {
    5.     index = list.GetNextSelectedItem(pos);
    6. }
    7. // now index specifies selecting item, we will delete it
    8. list.DeleteItem(index);

    Trong trường hợp bạn muốn lấy item được click tại message LBUTTONDOWN, có thể xem
    Visual C++ Code:
    1. CListControl::HitTest(...)
    Đã được chỉnh sửa lần cuối bởi Tarzan : 21-10-2006 lúc 10:28 PM.

  10. #10
    Ngày gia nhập
    07 2007
    Nơi ở
    Sao Hỏa
    Bài viết
    11

    Vậy nếu em muốn tự động cộng hết tất cả các items trong list thì phải làm như thế nào(MFC). Em đã thử nhưng ko khai báo int,char,float,.. = TextBox(Edit) dc.VD: int n = m_edit1(MFC); hay int n = textBox1->Text(CLR);
    Power in your mind - Don't ask me why - I can make you cry - C++ is my life.

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

  1. Phương thức Add trong list có phải là thêm đối tượng vào list không?
    Gửi bởi princehai trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 20-09-2011, 01:14 PM
  2. Lấy text trong sub item của list control trong VC++?
    Gửi bởi klein trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 01-04-2011, 03:40 PM
  3. hàm hủy(list::~list()) trong danh sách móc nối đối tượng xử lý những gì?
    Gửi bởi Emerald214 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: 29-12-2010, 09:05 AM
  4. Lỗi tạo List Control trong Project Visual 2008
    Gửi bởi yennamthien24 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 16-11-2010, 06:30 PM
  5. Chuyển các phần tử từ list này sang list kia. Sửa giúp mình?
    Gửi bởi Vaanres trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 25-07-2010, 09:45 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