1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

не выводит директории!

Тема в разделе "С и С++", создана пользователем -, 16 дек 2008.

  1. Гость

    Репутация:
    0
    Моё задание заключалось в следующем: создать кнопки для дисков, которые активны и при нажатии на какую-либо кнопку, в ЛистБокс должна выводиться директория, соответствующая этому диску.
    Здесь я создаю кнопки для активных дисков:
    a[0]='A';
    a[1]='B';
    a[2]='C';
    a[3]='D';
    a[4]='E';
    a[5]='F';
    a[6]='G';
    a[7]='H';
    a[8]='I';
    a[9]='J';
    int i=0;
    for (i=0;i<10;i++)
    {
    x[0]=a;
    x[1]=':';
    x[2]='/';
    x[3]='\0';
    if (_wchdir(x)==false)
    {
    j=j++;
    but[j]=CreateWindow(TEXT("button"),x,WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,240,(35*j)+10,70,30,hWnd,(HMENU)33,hI
    nstance,NULL);
    }
    }

    обработчик нажатия на одну из кнопок:
    case 33:
    for (j=0;j<10;j++)
    {
    SendMessage(hList,LB_RESETCONTENT,0,0);
    GetWindowText(but[j], tx, sizeof(tx));
    _wchdir(tx);
    SendMessage(hList,LB_DIR,DDL_DIRECTORY|DDL_READWRITE|DDL_HIDDEN|DDL_SYSTEM,(LPAR
    AM)TEXT("*.*"));
    }
    break;
    Проблема в том, что обработчик пробегает цикл и выводит в ЛистБокс только последний элемент, как будто я нажимала на последнюю кнопку. Как сделать так, чтобы в ЛистБокс данные именно с того диска, на который я нажала??
     
  2. ZZmiy

    ZZmiy Гость

    Репутация:
    0
    Согласно MSDN все child окна должны иметь уникальный id
    поэтому как минимум в строчке
    but[j]=CreateWindow(TEXT("button"),x,WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,240,(35*j)+10,70,30,hWnd,(HMENU)33,hI
    nstance,NULL);
    ошибка
    Cоздаем кнопки с различными ID, ну а дальше дело техники :)
     
  3. Гость

    Репутация:
    0
    спасибо большое))
     
Загрузка...

Поделиться этой страницей