Files
kompas3d-mcp/docs/Kompas3D_SDK/guides/ksdrawslidefromfile.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

152 lines
5.0 KiB
Markdown

---
title: "ksDrawSlideFromFile - Отрисовать слайд в окне из текстового файла, содержащего блок RCDATA"
type: guide
api: [api7]
tags: [guide, api7, ksdrawslidefromfile]
sources:
- ksdrawslidefromfile.html
---
*API экспортных функций > Функции работы с прикладной библиотекой  > Функции вывода на экран *
## ksDrawSlideFromFile - Отрисовать слайд в окне из текстового файла, содержащего блок RCDATA
Пример...
Аналог данной функции при использовании Automation - метод KompasObject::ksDrawSlideFromFile.
Синтаксис:
```
int ksDrawSlideFromFile ( void *Hwindow, char * fileName );
Входной параметр:
Hwindow - дескриптор окна,
fileName - полное имя файла.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Функция предназначена для отладки слайдов. Позволяет просмотреть отредактированный слайд в окне диалога без перетрансляции тестовой библиотеки.
2. При использовании Unicode следует использовать функцию ksDrawSlideFromFileW.
## ksDrawSlideFromFile - Пример использования
//фрагмент из файла .rc
1000 DIALOG 84, 66, 204, 133
EXSTYLE WS_EX_DLGMODALFRAME
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Sans Serif"
{
CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 8, 111, 50, 14
CONTROL "Cancel", IDCANCEL, "BUTTON", BS_PUSHBUTTON | WS_CHILD |
WS_VISIBLE | WS_TABSTOP, 72, 111, 50, 14
CONTROL "", IDD_SHOW, "static", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE |
WS_BORDER, 7, 3, 105, 97
}
class TShowStatic;
//Описание класса, обслуживающего диалог
class TModDialog :public TDialog
{
public:
UINT IdSlide;
TShowStatic* Show;
TModDialog ( TWindow *ptParent );
UINT GetIdSlide( ) { return IdSlide; };
};
//Описание класса обслуживающего элемент вывода слайда
class TShowStatic : public TStatic {
public:
TShowStatic ( TModDialog * ptParent, int resourceId );
protected :
void EvPaint( );
DECLARE_RESPONSE_TABLE( TShowStatic );
};
DEFINE_RESPONSE_TABLE1( TShowStatic,TStatic )
EV_WM_PAINT,
END_RESPONSE_TABLE;
//--------------------------------------------------------------------------
-----
//
//--------------------------------------------------------------------------
-----
TShowStatic :: TShowStatic ( TModDialog *ptParent, int resourceId ):
TStatic( ptParent, resourceId ) {
SetBkgndColor( GetSysColor( COLOR_APPWORKSPACE ) );
}
//--------------------------------------------------------------------------
-----
//
//--------------------------------------------------------------------------
-----
void TShowStatic ::EvPaint( )
{
TStatic::EvPaint( );
TModDialog * d = TYPESAFE_DOWNCAST( Parent, TModDialog );
if ( d )
// DrawSlide ( ( void * ) HWindow, d->GetIdSlide( ) );
// DrawBitmap ( ( void * ) HWindow, d->GetIdSlide( ) );
//в файле "c:\\libtest\\1.rc" - находится отлаживаемый слайд
ksDrawSlideFromFile ( ( void * ) HWindow, "c:\\libtest\\1.rc" );
}
//--------------------------------------------------------------------------
-----
//
//--------------------------------------------------------------------------
-----
TModDialog :: TModDialog ( TWindow *ptParent )
: TDialog( ptParent, 1000, module ){
IdSlide = 100;
Show=new TShowStatic( this,IDD_SHOW );
}
//--------------------------------------------------------------------------
-----
// Функция, вызывающая диалог с отрисовкой слайда или битмапа
//--------------------------------------------------------------------------
-----
void TestShowDialog( ) {
TModDialog *pDialog;
pDialog = new TModDialog( GetWindowPtr( ( HWND )GetHWindow( ) ) );
pDialog->Execute( );
delete pDialog;
}
//файл 1.rc
100 RCDATA {
GB, 168, 158,
SC, 1,
LS, 0, 1,
LN, 69, 57, 69, 26,
LN, 69, 26, 74, 18,
LN, 74, 18, 101, 18,
LN, 101, 18, 105, 26,
LN, 105, 26, 105, 57,
LN, 74, 37, 101, 37,
AR1, 114, 57, 45, 74, 37, 69, 57,
AR1, 61, 57, 44, 105, 57, 101, 37,
AR1, 80, 28, 11, 69, 28, 74, 37,
AR1, 94, 28, 11, 101, 37, 105, 28,
LN, 69, 57, 69, 88,
LN, 69, 88, 74, 96,
LN, 74, 96, 101, 96,
LN, 101, 96, 105, 88,
LN, 105, 88, 105, 57,
LN, 74, 77, 101, 77,
AR1, 114, 57, 45, 69, 57, 74, 77,
AR1, 62, 57, 44, 103, 77, 105, 57,
AR1, 80, 86, 11, 74, 77, 69, 86,
AR1, 95, 86, 11, 106, 86, 100, 76,
SC, 0,
LS, 2, 1,
LN, 62, 57, 112, 57,
SC, 0,
TS, 0,
MA, 45, 112,
TX, "ГОСТ 15524-70\0"
MA, 37, 127,
TX, "Класс точности А\0"
MA, 37, 142,
TX, " гайки высокие\0"
END_SLIDE
}