CODE:external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char str[255];
string path="*.ini"; // путь к файлу настроек
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=17; pos_size_button0[0][1]=85; pos_size_button0[0][2]=140; pos_size_button0[0][3]=20;
text_button0[0]="Сохранить настройки";
int pos_size_edit0[2][4];
string text_edit0[2];
pos_size_edit0[0][0]=18; pos_size_edit0[0][1]=18; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=18; pos_size_edit0[1][1]=50; pos_size_edit0[1][2]=100; pos_size_edit0[1][3]=20;
text_edit0[0]=""; text_edit0[1]=""; // значения по умолчанию, можно не указывать
if(fopen(path, "r")!=0) // если файл с настройками открылся, т. е. существует
{
fclose();
GetPrivateProfileString ("Default", "Edit0", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[0]
text_edit0[0]=format (#str[0]);
GetPrivateProfileString ("Default", "Edit1", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
text_edit0[1]=format (#str[0]);
}
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0]);
showdialog(0, "Диалог", 835, 390, 222, 160, 1, 1);
enabletimer(0);
loop() sleep(10);
CREATE_TIMER(0, 500)
{
if(flag_button0[0]>0) // если нажата кнопка сохранить настройки
{
flag_button0[0]=0;
WritePrivateProfileString ("Default", "Edit0", text_edit0[0], path); // записываем значение text_edit0[0]
WritePrivateProfileString ("Default", "Edit1", text_edit0[1], path); // записываем значение text_edit0[1]
}
}
Не мгу сопоставить то, что выше и это.
А
CODE:BM_SETCHECK//Это дать состояние галки?
(Добавление)
А, кажется понял
(Добавление)
CODE:StatusCheckbox1 = SendMessage(Checkbox1, BM_GETSTATE, 0, 0);
StatusCheckbox2 = SendMessage(Checkbox2, BM_GETSTATE, 0, 0);
StatusCheckbox3 = SendMessage(Checkbox3, BM_GETSTATE, 0, 0);
WritePrivateProfileString ("Default", "Checkbox1", StatusCheckbox1, PathSaveSettings);
WritePrivateProfileString ("Default", "Checkbox2", StatusCheckbox2, PathSaveSettings);
WritePrivateProfileString ("Default", "Checkbox3", StatusCheckbox3, PathSaveSettings);
Вылетает.
(Добавление)
Нашел ошибку:
WritePrivateProfileString ("Default", "Checkbox1",
format(StatusCheckbox1
), PathSaveSettings);
В каждом
(Добавление)
CODE:#define WM_GETTEXT0x000D
Что дальше?
CODE:Text_Edit2 = SendMessage(Edit2, WM_GETTEXT, 0, 0);
0x000D - как это почсчитать наверное надо?
(Добавление)
и как это посчитать? Что бы ставить загружаемые значения галочек в галки
(Добавление)
007wan пишет:
BM_SETSTATE
Ошибочка)
(Добавление)
Вообще у меня получилось сделать, что бы он получал данные от галочек и сохранял и получал данные от файла - все это в переменные, но не получается дать значение галочкам
(Добавление)
Явно external сложнее, чем обычные функции, но мне это нравится, я думаю скоро разберусь.
(Добавление)
Просто я уже начал писать код с external(контролы итд), ну я же не могу напрямую сделать так:
CODE:Edit2 = CreateWindow(0, "EDIT", "Jlby ntrcn", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL, 270, 70, 120, 20, formatwi(SecondaryWindow), 0, 0, 0);
А потом
CODE:Edit2 = CreateWindow(0, "EDIT", "Хоп и поменяли", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL, 270, 70, 120, 20, formatwi(SecondaryWindow), 0, 0, 0);
Я пробовал, он просто копирует кнопку поверх другой