Avatar billede holber Nybegynder
30. januar 2002 - 13:02 Der er 5 kommentarer og
1 løsning

Et godt spørsmål visual c++ 6.0

Jeg sidder med problem. Jeg skal lave sådan at jeg kan browse mig fram til en sti idet program jeg sidder med. så mit spørgsmålo er hvordan får jeg lavet det. På forhånd tak for hjælpen

med venlig hilsen

Mikael Holbæk Bertelsen
Avatar billede jpk Nybegynder
30. januar 2002 - 13:10 #1
Hvis det er en folder-browser du skal bruge kan du finde en på http://codeguru.earthweb.com/dialog/index.shtml under afsnittet "Dialog for selecting folders"
Avatar billede mbulow Nybegynder
30. januar 2002 - 15:13 #2
Hejsa :)

Jeg har lige skrevet et bitte stykke kode, der (når du klikker i hovedvinduet) åbner en fileselection-dialog.

Når dialogen lukkes, vises stien i en messagebox (eller måske en error).

Jeg indsætter koden i en efterfølgende kommentar for at holde det adskildt.

Der er rigtig mange variable i OPENFILENAME strukturen, så prøv at kigge i dit MSDN under "GetOpenFileName" og "OPENFILENAME" for en nærmere beskrivelse

PS! Det er lavet som en helt almindelig "Win32 Application" i VC++6, og alt det interessante sker i OpenFile-funktion

Håber det hjælper, held og lykke :)
Avatar billede mbulow Nybegynder
30. januar 2002 - 15:17 #3
#include <windows.h>

void OpenFile(HWND hWnd){
  OPENFILENAME    ofn;
  char  szFile[MAX_PATH] = "";

  ZeroMemory(&ofn, sizeof(ofn));
  ofn.lStructSize = sizeof(ofn);
  ofn.hwndOwner = hWnd;
  ofn.lpstrFile = szFile;
  ofn.nMaxFile = sizeof(szFile);
  ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
  ofn.nFilterIndex = 1;
  ofn.lpstrFileTitle = NULL;
  ofn.nMaxFileTitle = 0;
  ofn.lpstrInitialDir = NULL;
  ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

  if(GetOpenFileName(&ofn) == TRUE)
      MessageBox(hWnd, szFile, TEXT("Selected file/directory"), MB_OK);
  else
      MessageBox(hWnd, TEXT("Ehh... What is going on? I really hope you clicked the cancel-button :/"), TEXT("Error: GetOpenFileName"), MB_ICONERROR);
}

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
  static HWND  hMainWnd;

  switch(uMsg){
      case WM_CREATE:
        hMainWnd = hWnd;
        break;
      case WM_DESTROY:
        PostQuitMessage(0);
        break;
      case WM_LBUTTONUP:
        OpenFile(hMainWnd);
        return 0;
  }

  return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){
  HWND      hWnd;
  MSG        msg;
  TCHAR      szClassName[] = TEXT("MyFileOpener");
  WNDCLASS  WndClass;

  WndClass.cbClsExtra = 0;
  WndClass.cbWndExtra = 0;
  WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
  WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  WndClass.hInstance = hInstance;
  WndClass.lpfnWndProc = WindowProc;
  WndClass.lpszClassName = szClassName;
  WndClass.lpszMenuName = NULL;
  WndClass.style = CS_HREDRAW | CS_VREDRAW;

  if(!RegisterClass(&WndClass)){
      MessageBox(NULL, TEXT("An error occured while registering the window class"), TEXT("Error: RegisterClass"), MB_ICONERROR);
      return 0;
  }

  hWnd = CreateWindow(szClassName, TEXT("Fun with a file-opener"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

  ShowWindow(hWnd, nShowCmd);
  UpdateWindow(hWnd);

  while(GetMessage(&msg, NULL, 0, 0)){
      TranslateMessage(&msg);
      DispatchMessage(&msg);
  }

  return msg.wParam;
}
Avatar billede mbulow Nybegynder
30. januar 2002 - 15:20 #4
OK! Nu må det vist snart være tid til at jeg bliver nomineret som den bruger, på eksperten, der er bedst til at lave f*** up i kode-formateringen :) LOL

Men jeg håber det går
Avatar billede jpk Nybegynder
30. januar 2002 - 15:25 #5
holber:
Du har stadig ikke skrevet om det er efter filer eller foldere du vil browse?

Hvis det er efter filer, og du bruger MFC, kan du bare skrive:

CFileDialog dlg;
if(dlg.DoModal() == IDOK)
{
  // gør hvad du vil med filen
  CString strFileName = dlg.GetFileName()
}
Avatar billede holber Nybegynder
30. januar 2002 - 15:27 #6
det er efter filer jeg skal browse!!

tak for de god henvendelser
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester