2016-04-12 46 views
0

İşte benim şartım.Windows çalıştırma dizini nasıl çalışır?

Bir metin kutusu veriyorum, kullanıcıların klasör yolunu yazması gerekiyor. Kullanıcılara yardımcı olmak için, ilk klasör yapısını yazdıklarında metin kutusuna "C: \" deyin, o yoldaki tüm klasörleri görüntülemek istiyorum (kullandığımız zaman tüm dizin yapısını nasıl aldığımızla aynı şekilde "windows run "). C++ 'daki herhangi bir kod snippet'i çok yardımcı olacaktır.

Şimdiden teşekkürler.

AKJ.

+2

Sizin için hazırladım, işte [belgeler] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb776884%28v=vs.85%29.aspx?f=255&MSPPError = -2147217396). "Öneriler" ve buna benzer şeyler yapmaya başladım, ancak "otomatik tamamlama" özelliğini kullanmaya başladım. Bilginin bulunması vazgeçilmez bir beceridir, bu yüzden bu konuda eğitim almanızı öneririm: somut bir soruyu somut bir cevaptan çok daha fazla yardımcı olacaktır. –

cevap

3

Otomatik tamamlama özelliği, kabuğun içine yerleştirilir ve istemciler tarafından kullanılabilir (bkz. Using Autocomplete). Otomatik tamamlama herhangi bir standart Düzenleme Kontrolü ile kullanılabilir. otomatik tamamlamayı etkinleştirmek için sadece SHAutoComplete çağırır:

bool EnableAutoComplete(HWND hWndEdit) { 
    if (SUCCEEDED(::SHAutoComplete(hWndEdit, SHACF_FILESYS_DIRS))) 
     return true; 
    return false; 
} 

SHAutoComplete

otomatik tamamlama davranışını özelleştirmek için bayraklar çok sayıda sağlar. Seçeneklerin hiçbiri gereksinimlerinize uymuyorsa, özel otomatik tamamlama kaynağınızı uygulayabilir ve öneriler üzerinde tam denetim sahibi olabilirsiniz (bkz. How to Enable Autocomplete Manually).

+0

Merhaba, önerdiğiniz kodu ekledim. Ama hiç bir çıkış alamıyorum. kod aşağıdaki gibidir, \t CWnd * pCBEdit = myCOmbo.GetDlgItem (1001); \t HWND h_handle = pCBEdit-> GetSafeHwnd(); \t (SUCCEEDED (SHAutoComplete (h_handle, SHACF_FILESYS_DIRS))) \t \t AfxMessageBox (L "DOne"); Mesaj kutusu belirir. Kullanıcı "C: \" yazdığında tüm kullanılabilir folerleri göstermek istiyorum. Mümkün olan tüm klasörleri bir yapıya eklemem ve yöntem çağrısı üzerine göstermem gerekiyor mu? Combobox kullanıyorum. – AKJ

+0

@AKJ Döküm yanlış. Ve bir açılır kutu kullanmalısınız, ComboBox değil. Veya ComboBoxEx'i kullanın, bilgi için linki okuyun. –