e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
81 lines
3.3 KiB
Markdown
81 lines
3.3 KiB
Markdown
---
|
|
title: "ksInitFilePreviewFunc - Инициализировать адрес пользовательской функции просмотра пользовательского файла"
|
|
type: guide
|
|
api: [api7]
|
|
tags: [guide, api7, ksinitfilepreviewfunc]
|
|
sources:
|
|
- ksinitfilepreviewfunc.html
|
|
---
|
|
|
|
*API экспортных функций > Функции работы с прикладной библиотекой > Функции вывода на экран *
|
|
|
|
|
|
## ksInitFilePreviewFunc - Инициализировать адрес пользовательской функции просмотра пользовательского файла
|
|
|
|
Пример...
|
|
Аналог данной функции при использовании Automation - метод ksDocument2D::ksInitFilePreviewFunc.
|
|
Синтаксис:
|
|
```
|
|
int ksInitFilePreviewFunc ( FilePreviewFuncCallBack func );
|
|
Входные параметры:
|
|
func - пользовательская функция просмотра пользовательского файла.
|
|
Возвращаемое значение:
|
|
1 - в случае успешного завершения,
|
|
0 - в случае неудачи.
|
|
См. также:
|
|
FilePreviewFuncCallBack
|
|
```
|
|
Примечание:
|
|
1. Если func вернет 1 - функция отрисовала файл, если 0 - функция не отрисовала файл, файл будет отрисовывать КОМПАС.
|
|
2. При использовании Unicode следует использовать функцию ksInitFilePreviewFuncW.
|
|
|
|
|
|
## ksInitFilePreviewFunc - пример использования
|
|
|
|
//------------------------------------------------------------------------------
|
|
// функция обратной связи для отображения в окне предварительного просмотра
|
|
// файлов не документов КОМПАС
|
|
// ---
|
|
int far __export pascal MyPreviewFunc( HWND HWindow, // дескриптор окна просмотра
|
|
char * fileName ){ // файл, который нужно показать в окне просмотра
|
|
if ( fileName ) {
|
|
char *c = strrchr( fileName, '.' );
|
|
if ( c && strcmp( c, ".cdw" ) && strcmp( c, ".frw" ) && strcmp( c, ".spw" ) && strcmp( c, ".kdw" ) ) {
|
|
//если не документ КОМПАС отобразим имя файла
|
|
c = strrchr( fileName, '\\' );
|
|
if ( c ) {
|
|
TRect rect;
|
|
::GetClientRect( HWindow, &rect );
|
|
TWindow *staticW = new TWindow( HWindow );
|
|
TDC *dc = new TClientDC(*staticW );
|
|
dc->TextOut( 40, ( rect.bottom - rect.top )*0.5-10, c1, strlen( c1 ) );
|
|
delete dc;
|
|
delete staticW;
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
//
|
|
// ---
|
|
extern "C" void far __export __pascal LibraryEntry( unsigned int com ){
|
|
switch ( com ) {
|
|
case 1: {
|
|
//установим адрес нашей функции просмотра
|
|
ksInitFilePreviewFunc( MyPreviewFunc );
|
|
char fileName[250];
|
|
//выберем файл
|
|
if( ( ksChoiceFile( 0,"Все файлы (*.* )|*.*|", fileName, 250, 1 ) ) != 0 )
|
|
Message( fileName );
|
|
// обнулим адрес
|
|
ksInitFilePreviewFunc( 0 );
|
|
// выберем файл
|
|
if( ( ksChoiceFile( 0,"Все файлы (*.* )|*.*|", fileName, 250, 1 ) ) != 0 )
|
|
Message( fileName );
|
|
break;
|
|
}
|
|
}
|
|
}
|