Разработка приложений для Internet


Ресурсы приложения FtpView


Загрузите шаблон диалоговой панели IDD_FTPVIEW_DIALOG приложения в редактор ресурсов (рис. 2.3).

В верхней левой части панели создайте поле редактирования для ввода адреса сервера FTP, с идентификатором IDC_FTP_ADDRESS. С правой стороны от этого поля расположите кнопку Connect с идентификатором IDC_CONNECT, кнопку On top с идентификатором IDC_ON_TOP и кнопку OK.

¨ По умолчанию MFC AppWizard размещает на диалоговой панели кнопки OK и Cancel. Кнопку OK вы можете использовать как есть, а кнопку Cancel мы предлагаем вам удалить, так как она будет нам не нужна.

В центре диалоговой панели разместите список (орган управления List Control) и присвойте ему идентификатор IDC_FTP_LIST. В этом списке будет отображаться содержимое каталогов сервера FTP.

Рис. 2.3. Редактирование диалоговой панели FtpView

Список List Control может отображать информацию в различных форматах. Это могут быть пиктограммы большого или маленького размера с подписями, отсортированные различным образом, или табличная информация разделенная на несколько колонок. Мы будем использовать последний из перечисленных форматов.

Откройте панель свойств списка List Control Properties. Мы показали ее на рисунке 2.4. Перейдите на страницу Styles. Из списка View выберите строку Report, которая определяет, что список будет отображать табличную информацию. Из списка Align выберите строку Left. Она задает выравнивание строк, отображаемых в списке, по левой границе. Вы также можете определить будут ли сортироваться строки, отображаемые в списке. Мы выбрали прямой порядок сортировки. Вы, в принципе, можете использовать обратный порядок сортировки или отказаться от сортировки совсем.

Рис. 2.4. Свойства списка IDC_FTP_LIST

В нижней части диалоговой панели разместите текстовую надпись Directory и поле редактирования для отображения названия текущего каталога с идентификатором IDI_DIRECTORY. Поле IDI_DIRECTORY будет использоваться только для вывода текста, поэтому откройте диалоговую панель свойств этого органа управления, перейдите на страницу Styles и включите переключатель Read-only (рис. 2.5).






Рис. 2.5. Свойства поля редактирования IDI_DIRECTORY

Кроме диалоговой панели IDD_FTPVIEW_DIALOG в ресурсы приложения FtpView входит пиктограмма IDR_MAINFRAME и ресурс, содержащий информацию о версии приложения VS_VERSION_INFO. Вы можете оставить ресурс VS_VERSION_INFO и пиктограмму IDR_MAINFRAME без изменения, но мы заменили стандартную пиктограмму приложений, созданных MFC AppWizard рисунком, который для нас нарисовал художник Алексей Абрамкин.

Вы должны добавить к ресурсам приложения еще две пиктограммы IDI_FILE и IDI_DIRECTORY, на которых изображены “лист бумаги” и “папка”. Эти пиктограммы будут использоваться для выделения файлов и каталогов в списке объектов каталога сервера FTP. Пиктограммы IDI_FILE и IDI_DIRECTORY обязательно должны иметь “маленькие” изображения размером 8 х 8 пикселов. Стандартные изображения 16 х 16 пикселов можно не рисовать - для нашего примера они не потребуются.

В следующей таблице мы привели изображения пиктограмм, которые используются в нашем приложении. В таблице все пиктограммы одинакового размера, но на самом деле пиктограммы IDI_FILE и IDI_DIRECTORY меньше чем пиктограмма IDR_MAINFRAME в два раза.

Пиктограмма

Идентификатор пиктограммы

Имя файла



IDI_FILE

file.ico



IDI_DIRECTORY

director.ico



IDR_MAINFRAME

russian.ico

На рисунке 2.6 мы показали страницу ResourceView диалоговой панели Project Workspace. Так она будет выглядеть после того, как вы добавите в проект все необходимые нам ресурсы.

Ресурс VS_VERSION_INFO, который описывает версию приложения, нами не используется и мы оставляем его без изменения таким, каким он создан MFC AppWizard.



Рис. 2.6. Ресурсы приложения

Файл ресурсов приложения FtpView представлен в листинге 2.2. В нем вы найдете шаблон диалоговой панели IDD_FTPVIEW_DIALOG, команды для включения пиктограмм, информационный ресурс VS_VERSION_INFO и другие вспомогательные команды.

Листинг 2.2. Файл FtpView.rc

//Microsoft Developer Studio generated resource script.



//

#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

//////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

// Русские ресурсы

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)

#ifdef _WIN32

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

#pragma code_page(1251)

#endif //_WIN32

#ifdef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// TEXTINCLUDE

//

1 TEXTINCLUDE DISCARDABLE

BEGIN

    "resource.h\0"

END

2 TEXTINCLUDE DISCARDABLE

BEGIN

    "#include ""afxres.h""\r\n"

    "\0"

END

3 TEXTINCLUDE DISCARDABLE

BEGIN

    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"

    "#define _AFX_NO_OLE_RESOURCES\r\n"

    "#define _AFX_NO_TRACKER_RESOURCES\r\n"

    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"

    "\r\n"

    "#if !defined(AFX_RESOURCE_DLL) ||

       defined(AFX_TARG_ENU)\r\n"

    "#ifdef _WIN32\r\n"

    "LANGUAGE 9, 1\r\n"

    "#pragma code_page(1252)\r\n"

    "#endif\r\n"

    "#include ""res\\FtpView.rc2"" \r\n"

    "#include ""afxres.rc"" \r\n"

    "#endif\0"

END

#endif    // APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// Диалоговая панель IDD_FTPVIEW_DIALOG

//

IDD_FTPVIEW_DIALOG DIALOGEX 0, 0, 352, 194

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

EXSTYLE WS_EX_APPWINDOW

CAPTION "FtpView"

FONT 8, "MS Sans Serif"

BEGIN

    DEFPUSHBUTTON   "OK",IDOK,305,5,40,15



    CONTROL         "List1",IDC_FTP_LIST,"SysListView32",

                    LVS_REPORT | LVS_SORTASCENDING |

                    LVS_ALIGNLEFT | WS_BORDER |

                    WS_TABSTOP,5,25,340,133

    EDITTEXT        IDC_FTP_ADDRESS,5,5,183,14,ES_AUTOHSCROLL

    PUSHBUTTON      "On top",IDC_ON_TOP,253,5,40,15

    PUSHBUTTON      "Connect",IDC_CONNECT,196,5,45,15

    LTEXT           "Directory:",IDC_STATIC,7,171,33,8

    EDITTEXT        IDC_STATUS,44,169,301,15,ES_AUTOHSCROLL | ES_READONLY

END

#ifndef _MAC

//////////////////////////////////////////////////////////////

//

// Информация о приложении

//

VS_VERSION_INFO VERSIONINFO

 FILEVERSION 1,0,0,1

 PRODUCTVERSION 1,0,0,1

 FILEFLAGSMASK 0x3fL

#ifdef _DEBUG

 FILEFLAGS 0x1L

#else

 FILEFLAGS 0x0L

#endif

 FILEOS 0x4L

 FILETYPE 0x1L

 FILESUBTYPE 0x0L

BEGIN

    BLOCK "StringFileInfo"

    BEGIN

        BLOCK "040904B0"

        BEGIN

          VALUE "CompanyName", "\0"

          VALUE "FileDescription", "FTPVIEW MFC Application\0"

          VALUE "FileVersion", "1, 0, 0, 1\0"

          VALUE "InternalName", "FTPVIEW\0"

          VALUE "LegalCopyright", "Copyright © 1997\0"

          VALUE "LegalTrademarks", "\0"

          VALUE "OriginalFilename", "FTPVIEW.EXE\0"

          VALUE "ProductName", "FTPVIEW Application\0"

          VALUE "ProductVersion", "1, 0, 0, 1\0"

        END

    END

    BLOCK "VarFileInfo"

    BEGIN

        VALUE "Translation", 0x409, 1200

    END

END

#endif    // !_MAC

//////////////////////////////////////////////////////////////

//

// DESIGNINFO

//

#ifdef APSTUDIO_INVOKED

GUIDELINES DESIGNINFO DISCARDABLE

BEGIN

    IDD_FTPVIEW_DIALOG, DIALOG



    BEGIN

        LEFTMARGIN, 2

        RIGHTMARGIN, 345

        TOPMARGIN, 4

        BOTTOMMARGIN, 187

    END

END

#endif    // APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// Пиктограммы приложения

//

IDR_MAINFRAME     ICON    DISCARDABLE     "res\\Russian.ico"

IDI_FILE          ICON    DISCARDABLE     "res\\File.ico"

IDI_DIRECTORY     ICON    DISCARDABLE     "res\\director.ico"

#endif   

//////////////////////////////////////////////////////////////

#ifndef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 3 resource.

//

#define _AFX_NO_SPLITTER_RESOURCES

#define _AFX_NO_OLE_RESOURCES

#define _AFX_NO_TRACKER_RESOURCES

#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

#ifdef _WIN32

LANGUAGE 9, 1

#pragma code_page(1252)

#endif

#include "res\FtpView.rc2"

#include "afxres.rc" 

#endif

//////////////////////////////////////////////////////////////

#endif    // not APSTUDIO_INVOKED

Идентификаторы ресурсов приложения FtpView определены в файле resource.h. Этот файл создается автоматически редактором ресурсов Microsoft Visual C++. Исходный текст файла resource.h представлен в листинге 2.3.

Листинг 2.3. Файл resource.h

//{{NO_DEPENDENCIES}}

// Файл создан Microsoft Developer Studio

// Используется в FtpView.rc

// Идентификаторы органов управления

#define IDD_FTPVIEW_DIALOG              102

#define IDR_MAINFRAME                   128

#define IDI_DIRECTORY                   130

#define IDI_FILE                        131

#define IDC_FTP_LIST                    1000

#define IDC_FTP_ADDRESS                 1001

#define IDC_VIEW                        1002

#define IDC_ON_TOP                      1003

#define IDC_CONNECT                     1004

#define IDC_STATUS                      1005

// Следующие значения идентификаторов используются по

// умолчанию для новых объектов

#ifdef APSTUDIO_INVOKED

#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NEXT_RESOURCE_VALUE        129

#define _APS_NEXT_COMMAND_VALUE         32771

#define _APS_NEXT_CONTROL_VALUE         1006

#define _APS_NEXT_SYMED_VALUE           101

#endif

#endif


Содержание раздела