Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск файлов, Работаем с Листом 
V
    Опции темы
Zorak
Дата 16.1.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Вот написал код:
Код

//#include "ProType.h"
#include "windows.h"
#include "windowsx.h"



void DlgOnCommand(HWND,int,HWND,UINT);

BOOL DlgOnInitDialog(HWND,HWND,LPARAM);
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);


int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int)
{
    DialogBox(hInst,"Files",NULL,DlgProc);
    return 0;
}

BOOL CALLBACK DlgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
    switch(msg)
    {
        HANDLE_MSG(hWnd,WM_INITDIALOG,DlgOnInitDialog);
        HANDLE_MSG(hWnd,WM_COMMAND,DlgOnCommand);
    default:return FALSE;
    }
}

void DlgOnCommand(HWND hWnd,int id,HWND,UINT)
{
    switch(id)
    {
        case IDCANCEL:EndDialog(hWnd,0);
    }
}

BOOL DlgOnInitDialog(HWND hWnd,HWND,LPARAM)
{
    WIN32_FIND_DATA fd;
    HANDLE hFile = FindFirstFile("ModalDialog.*",&fd);
    if (hFile == INVALID_HANDLE_VALUE)
        return TRUE;
    else
        SendDlgItemMessage(hWnd,ID_LIST,LB_ADDSTRING,0,fd.cFileName);
    while(FindNextFile(hFile,&fd))
    {
        SendDlgItemMessage(hWnd,ID_LIST,LB_ADDSTRING,0,fd.cFileName);
    }
    return TRUE;
}

По идее долнжо сканировать папку и в Лист бокс виводитьвсе имена файлов...... ошибка банальная:
Код

Compiling resources...
Compiling...
ModalDialog.cpp
d:\programmer\!!! projects !!!\visual c++\modaldialog\modaldialog.cpp(44) : error C2065: 'ID_LIST' : undeclared identifier
Error executing cl.exe.

ModalDialog.exe - 1 error(s), 0 warning(s)

и просто не знаю что с ней делать... в файле resource.h есть оглашения идентификатора:
#define ID_LIST 100
Помогите пжлста...
З.Ы. если надо целий проект целиком - говорите )...
Спасибо


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
586
Дата 16.1.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Цитата
ошибка банальная:
....
и просто не знаю что с ней делать... в файле resource.h есть оглашения идентификатора


Нужно подключить resource.h
Код
//....
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
//.....


Это сообщение отредактировал(а) 586 - 16.1.2009, 23:20
PM   Вверх
Zorak
Дата 17.1.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



насколько я знаю, етот файл должен подключаться автоматически.. тость он создаеться сам при создании диалога и его не потребности подключать директивой #include.... или я ошибаюсь??

Влюбом случае когда подключил етот файл, нашлась ошибка вот такая
Код

Compiling resources...
Compiling...
ModalDialog.cpp
d:\programmer\!!! projects !!!\visual c++\modaldialog\modaldialog.cpp(45) : error C2664: 'SendDlgItemMessageA' : cannot convert parameter 5 from 'char [260]' to 'long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
d:\programmer\!!! projects !!!\visual c++\modaldialog\modaldialog.cpp(48) : error C2664: 'SendDlgItemMessageA' : cannot convert parameter 5 from 'char [260]' to 'long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.

ModalDialog.exe - 2 error(s), 0 warning(s)

Тоесть не может обработать 5 параметр. =(


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
586
Дата 17.1.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Цитата
error C2664: 'SendDlgItemMessageA' : cannot convert parameter 5 from 'char [260]' to 'long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Исправь:
SendDlgItemMessage(hWnd,ID_LIST,LB_ADDSTRING,0,(LPARAM)fd.cFileName);

Цитата(Zorak @  17.1.2009,  19:34 Найти цитируемый пост)
насколько я знаю, етот файл должен подключаться автоматически

Нет. Все .h файлы должны подключаться директивой #include. #include "resource.h" у тебя небыло.
PM   Вверх
Zorak
Дата 17.1.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Да, все получилось, спасибо большое..... и ещё последний вопрос.. обясни пжлста зачем там надо (LPARAM) а не просто получить имя файла fd.cFileName ???


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
586
Дата 17.1.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Цитата(Zorak @  17.1.2009,  20:38 Найти цитируемый пост)
обясни пжлста зачем там надо (LPARAM) а не просто получить имя файла fd.cFileName ??? 

Это такая особенность при работе с функциями SendMessage и SendDlgItemMessage.

Убедиться, что допустимо такое приведение типов, можно в MSDN:
Цитата(http://msdn.microsoft.com/en-us/library/bb775148(VS.85).aspx)
int pos = (int)SendMessage(hwndList, LB_ADDSTRING, 0, 
                    (LPARAM) Roster[i].tchName); 


Существуют также макросы, чтобы не делать приведения типов:
Код
#include <windows.h>
#include <windowsx.h>
#include "resource.h"

//...
ListBox_AddString(GetDlgItem(hWnd, ID_LIST), fd.cFileName);    // include windowsx.h

PM   Вверх
Zorak
Дата 17.1.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Ну тут нечего сказать... открил глаза =))) Спасибо


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
necroo
Дата 16.5.2012, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.5.2012

Репутация: нет
Всего: нет



слушай, а как прочитать не только подключенные в Модал диалоге файлы, а полностью корневой каталог  подключенный в комбо боксе

Это сообщение отредактировал(а) necroo - 16.5.2012, 20:00
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0932 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.