Makale numarası: 179378 - Son Gözden Geçirme: 21 Kasım 2006 Salı - Gözden geçirme: 1.3

Nasıl yapılır: geçerli dizin klasörler için Gözat

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Varsayılan olarak, SHBrowseForFolder API 's kabuk ad boşluğuna gözatmak için bir klasör seçin masaüstünde Başlat sağlar. Genellikle, uygulamanız, kullanıcı büyük bir olasılıkla, geçerli çalışma dizini gibi istediğiniz bir klasör Gözat iletişim kutusunu Başlat tercih edebilirsiniz.

Gözatma iletişim kutusunun ilk seçim olarak ayarlamak için <a0></a0>, bir geri çağırma işlevi BROWSEINFO yapısını içermelidir. Iletiyle BFFM_INITIALIZED geri çağırma işlevi çağrıldığında, sırayla iletişim kutusunun seçim, istenen yolunu ayarlamak için BFFM_SETSELECTION ileti gönderebilirsiniz.

Daha fazla bilgi

Aşağıda seçili geçerli dizini Gözat iletişim kutusunu getirir bazı örnek kodlar verilmektedir. Ayrıca iletişim kutusunun durum penceresinde seçili olan klasörün yolunu görüntüler.

Örnek kod

#define STRICT
#include <windows.h>
#include <shlobj.h>

INT CALLBACK BrowseCallbackProc(HWND hwnd, 
                                UINT uMsg,
                                LPARAM lp, 
                                LPARAM pData) 
{
   TCHAR szDir[MAX_PATH];

   switch(uMsg) 
   {
   case BFFM_INITIALIZED: 
      if (GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
      {
         // WParam is TRUE since you are passing a path.
         // It would be FALSE if you were passing a pidl.
         SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir);
      }
      break;

   case BFFM_SELCHANGED: 
      // Set the status window to the currently selected path.
      if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir))
      {
         SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
      }
      break;
   }
   return 0;
}


int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszCmdLine,
                     int nCmdShow)
{
   BROWSEINFO bi;
   TCHAR szDir[MAX_PATH];
   LPITEMIDLIST pidl;
   LPMALLOC pMalloc;

   if (SUCCEEDED(SHGetMalloc(&pMalloc)))
   {
      ZeroMemory(&bi,sizeof(bi));
      bi.hwndOwner = NULL;
      bi.pszDisplayName = 0;
      bi.pidlRoot = 0;
      bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
      bi.lpfn = BrowseCallbackProc;

pidl = SHBrowseForFolder(&bi); 
if (pidl) 
{ 
    // 
    // Other code omited 
    // 
    pMalloc->lpVtbl->Free(pMalloc,pidl); 
} 
pMalloc->lpVtbl->Release(pMalloc);
      }
   }
   return 0;
}
				

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Win32 Uygulama Programlama Arabirimi
Anahtar Kelimeler: 
kbmt kbcode kbhowto KB179378 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:179378  (http://support.microsoft.com/kb/179378/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.