Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2015, 11:23   #1
piteriv
 
Аватар для piteriv
 
Регистрация: 16.09.2011
Сообщений: 8
По умолчанию как работать с флажком и реестром

Здравствуйте!
Я программирую на WINAPI на С++.
Первый вопрос.
Когда я создаю кнопку типа флажок то он стандартного вида с чёрной галочкой небольших размеров.
Скажите пожалуйста как изменить вид флажока на такой как на картинке ниже? Ну и вообще вид остальных элементов к примеру поле со списком как на картинке?
Второй вопрос.
Как работать с реестром через WINAPI? Чтобы программа добавляла свои значения в ключи реестра?
Я использую, для открытия ключа, функцию RegCreateKeyEx и ключ создаётся если не было такового. А для создания значения ключа использую функцию RegSetValueEx и значение не создаётся в заранее созданном ключе. Подскажите пожалуйста в чём дело.
С уважением, Питер.
Изображения
Тип файла: jpg 1.JPG (3.1 Кб, 116 просмотров)
Просто Питер.
piteriv вне форума Ответить с цитированием
Старый 29.12.2015, 12:52   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Ну так покажите как вызываете RegCreateKeyEx и RegSetValueEx
waleri вне форума Ответить с цитированием
Старый 29.12.2015, 14:01   #3
piteriv
 
Аватар для piteriv
 
Регистрация: 16.09.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Ну так покажите как вызываете RegCreateKeyEx и RegSetValueEx
Ну к примеру вот так...
Первая функция работает, а вторая нет.
Код:
HKEY hKeyApp;
DWORD dwDisposition;
long key;
key=RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL"
 ,0,"",REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKeyApp,&dwDisposition);
RegSetValueEx(hKeyApp,"CheckedValue",NULL,REG_DWORD,0x00000000,sizeof(1));
RegFlushKey(hKeyApp);
RegCloseKey(hKeyApp);
Просто Питер.

Последний раз редактировалось Stilet; 30.12.2015 в 10:01.
piteriv вне форума Ответить с цитированием
Старый 29.12.2015, 14:40   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Перечитайте внимательней описание RegSetValueEx - у вас неправильный предпоследний аргумент, да и последний тоже не самый удачный. Кроме того, помогает проверка кода ошибок - сразу был бы виден invalid argument код.
waleri вне форума Ответить с цитированием
Старый 30.12.2015, 00:08   #5
piteriv
 
Аватар для piteriv
 
Регистрация: 16.09.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Перечитайте внимательней описание RegSetValueEx - у вас неправильный предпоследний аргумент, да и последний тоже не самый удачный. Кроме того, помогает проверка кода ошибок - сразу был бы виден invalid argument код.
В описании сказано указатель на данные.
может так...
Код:
RegSetValueEx(hKeyApp,"CheckedValue",NULL,REG_DWORD,"00000000",9);
но всё равно не работает
Подскажите пожалуйста правильный вариант.

И ещё подскажите пожалуйста насчёт флажков?
Просто Питер.

Последний раз редактировалось Stilet; 30.12.2015 в 10:02.
piteriv вне форума Ответить с цитированием
Старый 30.12.2015, 08:58   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

"0000" - это указатель на строчку, а указываете тип REG_DWORD.
Либо поменяйте тип, либо используйте указатель на тип DWORD.
waleri вне форума Ответить с цитированием
Старый 30.12.2015, 09:44   #7
piteriv
 
Аватар для piteriv
 
Регистрация: 16.09.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
"0000" - это указатель на строчку, а указываете тип REG_DWORD.
Либо поменяйте тип, либо используйте указатель на тип DWORD.
может так?...
Код:
RegSetValueEx(hKeyApp,"CheckedValue",NULL,REG_DWORD,*LPDWORD(00000000),9);
транслятор говорит:
cannot convert parameter 5 from 'unsigned long' to 'const unsigned char *'
Просто Питер.

Последний раз редактировалось piteriv; 30.12.2015 в 09:48.
piteriv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка масива методом обмена с флажком паскаль маргарита123 Помощь студентам 13 08.11.2014 15:15
Windows-программа + web-обвязка, как связать и как заставить работать? Человек_Борща Общие вопросы по программированию, компьютерный форум 3 23.04.2011 19:07
VC++ EE 2005 Как работать с реестром/ini файлами? Alexei91 Visual C++ 1 15.01.2011 11:02
С++. Что и как можно внести в DLL и как потом с этим работать? dampirik Помощь студентам 5 21.09.2009 08:19
Обьясните как работать с графикой и как решыть задачу Alex_Fort Помощь студентам 6 12.06.2009 00:05