Создал класс, который должен рисовать таблицу.
cpp Код:
#pragma once
typedef struct tagSECTOR
{
int Min;
int Max;
} SECTOR;
typedef struct tagGRIDHEDER
{
SECTOR PaintSector;
SECTOR CentrSector;
SECTOR ResizeSector;
BOOL bVisible;
} GRIDHEDER;
class HederClass
{
public:
HederClass(); // constructor
~HederClass(); // destructor
void Paint(HDC); // отображает массив заголовков
void ChangeVisibleArea(int, int, int, int); // пересчитывает параметры при изменении размеров окна
void Recalc(void);
private:
SECTOR ColsVisibleArea, RowsVisibleArea;
GRIDHEDER ColsHeder[COLS_COUNT]; //Структура для хранения информации о размерах столбцов
GRIDHEDER RowsHeder[ROWS_COUNT]; //Структура для хранения информации о размерах строк
int iColselection;
};
Методы - пока голые:
cpp Код:
HederClass::HederClass()
{
}
HederClass::~HederClass()
{
}
...........
Ничего пока не делал, кроме объявления класса:
Если значение COLS_COUNT или ROWS_COUNT ставлю небольшое, ну например 500, то программа нормально работает,
если значение 10000, то после появления окна, программа зависает. В окне вывода пишет:
Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC00000FD: Stack overflow (параметры: 0x00000000, 0x00272000).
"TestClass.exe" (Win32). Загружено "C:\Windows\SysWOW64\ole32.dll". Невозможно найти или открыть PDB-файл.
"TestClass.exe" (Win32). Загружено "C:\Windows\SysWOW64\clbcatq.dll". Невозможно найти или открыть PDB-файл.
"TestClass.exe" (Win32). Загружено "C:\Windows\SysWOW64\oleaut32.dll". Невозможно найти или открыть PDB-файл.
Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00270000.
Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00270000.
Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00270000.
....
В чём дело?
С уважением Виктор.