ALTE DOCUMENTE
|
||||||||
Explorer
Explorer). Операционная система обеспечи 15515n1319p 74;ает его множеством функций, часть из которых по определенным соображениям доступна только в режиме Администратора.
GetOpenFileName
HELP Developer Studio MSDN Windows
GetOpenFileName dialog box
BOOL GetOpenFileName LPOPENFILENAME lpofn
lpofn OPENFILENAME OPENFILENAME
OPENFILENAME | ||
lStructSize | ||
hwndOwner | ||
lpstrFilter |
указывается в файле ресурсов программы (например, "*.TXT DOC BAK" |
|
nFilterIndex |
фильтра в строке lpstrFilter |
|
lpstrFile |
GetOpenFileName GetSaveFileName |
|
nMaxFile |
lpstrFile GetOpenFileName GetSaveFileName FALSE |
|
lpstrFileTitle | ||
nMaxFileTitle |
lpstrFileTitle NULL |
|
lpstrTitle |
NULL |
|
lpstrInitialDir |
NULL |
|
Flags |
OFN SHOWHELP Help OFN PATHMUSTEXIST обеспечи 15515n1319p 74;ает контроль правильности действий при указании имени файла и пути к нему во время работы. Проводник делает предупреждения, если пользователь указывает неправильные имена файлов или пути к ним; OFN FILEMUSTEXIST обеспечи 15515n1319p 74;ает контроль правильности действий при указании имени файла. Проводник делает предупреждения, если пользователь указывает неправильные имена файлов |
GetOpenFileName GetSaveFileName TRUE
case IDM FOPEN
IDM FOPEN
OPENFILENAME
OPENFILENAME ofn
GetCurrentDirectory "C:\\"
DWORD GetCurrentDirectory DWORD nBufferLength
LPTSTR lpBuffer
nBufferLength
суффиксами, например, просматривать только doc txt LoadString
int LoadString(HINSTANCE hInstance, UINT uID
LPTSTR lpBuffer, int nBufferMax
hInstance uID lpBuffer nBufferMax
memset OPENFILENAME
void *memset(void *dest, int c, size_t count);
dest OPENFILENAME c count
OPENFILENAME
OPENFILENAME ofn ofn
ofn lpstrTitle = "Найти файл";
GetOpenFileName fopen fopen()
FILE *fopen(const char *filename, const *mode);
filename mode
fopen FILE
int fclose FILE streem
fclose
mode | ||
"r" | ||
"w" | ||
"a" |
EOF |
|
"r+" | ||
"w+" | ||
"a+" |
EOF |
Mydialog rc
#include <Windows.h>
#include "Text.h"
MYMENU MENU
MYMENU ACCELERATORS
STRINGTABLE
STRINGTABLE IDS FILTERS
Соответственно, изменится и вспомогательный файл Text.h:
#define ID_SHOW 100
#define ID_RESET 101
#define ID_FOPEN 102
#define ID_HELP 103
define ID FILTERS
OPENFILENAME
OPENFILENAME ofn;
char filename[256]; //
char szFile[256];
char szFilter[256];
UINT cbString;
char chReplace // Разделитель строк для szFilter
char szFileTitle[256];
char szDirName[256];
FILE *stream; //
HINSTANCE hInst; // Дескриптор текущего приложения
case ID_FOPEN:
GetCurrentDirectory(sizeof(szDirName), szDirName);
szFile[0]= '\0';
cbString = LoadString(hInst, ID_FILTERS, szFilter,
sizeof(szFilter));
chReplace= szFilter[cbString - 1];
for(i=0; szFilter[i] != '\0'; i++)
if (szFilter[i] == chReplace)
szFilter[i] = '\0'; //
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = szFilter;
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFileTitle = szFileTitle;
ofn.nMaxFileTitle = sizeof(szFileTitle);
ofn.lpstrTitle = " ";
ofn.lpstrInitialDir = szDirName;
ofn.Flags = OFN_SHOWHELP | OFN_PATHMUSTEXIST |
OFN_FILEMUSTEXIST;
if(GetOpenFileName(&ofn))
InvalidateRect hwnd NULL
break
include <Windows h>
#include <String.h>
#include <Stdio.h>
#include "Text.h"
LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM);
char szWinName[] = " "; //
char str[255]; // Буфер строки вывода
int X=0, Y=0; // Текущие координаты строки
int maxX, maxY; // Размеры экрана
HDC memdc; // DC виртуального окна
HBITMAP hbit; // Растр - это виртуальное окно
HBRUSH hbrush // Дескриптор кисти
OPENFILENAME ofn
char filename[256]; // Полное имя файла (путь)
char szDirName[256];
char szFile[256];
char szFilter[256];
UINT cbString;
char chReplace; // szFilter
char szFileTitle[256];
char szDirName[256];
FILE *stream; //
HINSTANCE hInst; //
int WINAPI WinMain (HINSTANCE hThisInst,
HINSTANCE hPrevInst,
LPSTR lpszArgs,
int nWinMode)
return msg. wParam;
}
// Windows и получает в качестве параметров сообщения
LRESULT CALLBACK WindowFunc HWND hwnd
UINT message,
WPARAM wParam,
LPARAM lParam)
InvalidateRect(hwnd,NULL,1); //
break;
case ID_HELP:
MessageBox(hwnd,"F2: \n"
"F3: В начала экрана\n"
"F4: Найти файл",
"Помощь",MB_OK);
InvalidateRect(hwnd,NULL,1); //
break;
}
break;
case WM_PAINT: //
hdc=BeginPaint(hwnd,&paintstruct); // DC
// Теперь копируем растр из памяти на экран
BitBlt(hdc,0,0,maxX,maxY,memdc,0,0,SRCCOPY);
EndPaint(hwnd,&paintstruct); // DC
break;
case WM_DESTROY: // Завершение программы
DeleteDC(memdc); // Удалить виртуальное окно
PostQuitMessage(0);
break;
default:
// Все сообщения, не обрабатываемые в данной
// функции, направляются на обработку по
// умолчанию
return DefWindowProc(hwnd,message,
wParam,lParam);
return 0;
}
|