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

  • Автор темы -
  • Дата начала

Гость
#1
Моё задание заключалось в следующем: создать кнопки для дисков, которые активны и при нажатии на какую-либо кнопку, в ЛистБокс должна выводиться директория, соответствующая этому диску.
Здесь я создаю кнопки для активных дисков:
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;
Проблема в том, что обработчик пробегает цикл и выводит в ЛистБокс только последний элемент, как будто я нажимала на последнюю кнопку. Как сделать так, чтобы в ЛистБокс данные именно с того диска, на который я нажала??
 
Z

ZZmiy

Гость
#2
Согласно 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, ну а дальше дело техники :)