Nếu bạn sử dụng một lớp kế thừa thì:
GetParent()->SetDlgItemText(IDOK, _T("Lưu"));
Nếu muốn thay đổi trực tiếp thì có thể:
fileDialogObject->SetDlgItemText(IDOK, _T("Lưu"));
IDOK đại diện cho cả Save/Open. Cơ bản là như vậy!
Muốn hỏi các bạn về vấn đề này:
Trong MFC mình dùng CFileDialog để mở/ save file. lúc hiển thị Form lên nó sẽ hiển thị Open/Save.
Giờ mình muốn chuyển chữ này và các button thành tiếng Việt thì phải làm sao vậy?
Bạn nào biết xin chỉ giùm?
Đã được chỉnh sửa lần cuối bởi nam_dkn : 21-07-2011 lúc 04:18 PM.
Nếu bạn sử dụng một lớp kế thừa thì:
GetParent()->SetDlgItemText(IDOK, _T("Lưu"));
Nếu muốn thay đổi trực tiếp thì có thể:
fileDialogObject->SetDlgItemText(IDOK, _T("Lưu"));
IDOK đại diện cho cả Save/Open. Cơ bản là như vậy!
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!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!)
Theo mình, bạn có thể làm 1 trong 2 cách sau:
1. cách 1:
Bạn viết 1 lớp mới, kế thừa CfileDialg. và bạn phải overwrite hàm Oninitdialog(). Trong hàm OnInitDialog này bạn sẽ set lại tiếng việt bằng cách dùng hàm EnumChildWindows để duyệt tất cả các control của dialog cha. Hoặc bạn get trược tiếp ID của control trong dialog (ID control con của Open/Save này đã được HDH fix cứng rồi, và giá trị là bao nhiêu thì bạn vào MSDN mà tìm) rồi set lại tiếng việt.
2. cách 2:
Nếu không thích tạo thêm lớp, thì bạn có thể dùng OPENFILENAME. trong OPENFILENAME có 1 hàm callback. Nên bạn phải tạo 1 hàm mới, và chỉ con trỏ vào hàm này. Trong hàm mới này, khi xử lý message WM_INITDIALOG, thì bạn hãy set tiếng việt.
Làm thử đi nhé.
Cảm ơn các bạn nhiều.
MÌnh đã thử 2 cách, tuy nhiên cách làm trực tiếp thì chạy bị lỗi. Cách tạo một lớp kế thừa thì ok
Cảm ơn các bạn !