Приветствуем Вас, Гость | RSS |

Категории раздела

Проигрыватели [2]
Проигрывают музыку и видео, как ни странно :)
Трекерная музыка [45]
Наши треки в стилях 8-bit, chiptune, keygen music (кому как нравится , то так пусть это и называет)
Библиотеки разработчикам [3]
Различные компоненты для программистов, которые написали мы
Утилиты [12]
Различные утилитки, разработанные нами
Исходники [4]
С++, PHP, JScript.NET, Visual Basic, Blitz3D, PureBasic
Видео [3]
Разное видео, в создании которого мы принимали участие
Демосцена [7]
Демо, чипдиски, интро и крэктро
Шрифты [2]
TrueType, Bitmap ...

Форма входа

Логин:
Пароль:

Социалки



P.O.P ВКонтакте


Поиск


Облако тегов





Пожертвовать

 WMR

USD Z775078396284
RUB R524843904548

Рекомендуем


Главная » Файлы » Исходники

Точки присутствия



Загрузка диалогов из ресурсов и дальнейшее их использование

Язык: PureBasic
Требуемые библиотеки: нет
Изначальная идея: ts-soft
PureBasic код и пример: SofT MANiAC (http://pop.ucoz.com)
Loading dialog boxes from resources
Описание: Загрузка диалогов из ресурсов и дальнейшее их использование

Грузить диалоги из ресурсов в Пурике очень просто, смотрите пример сами.

q.rc - собственно файл с ресурсами. Как подключать к проекту - курите маны кто не в курсе. Создан в ResEd (http://www.radasm.com/resed/index.html). При создании файла ресурсов обязательно убедитесь что в настройках ResEd включена галка сохраняющая константы в виде хекс-значений!
rsrc.inc - файл с константами контролов. Создан автоматом РесЕдом. В настройках РесЕда укажите, что константы нужно сохранять в формате Пурика!
e.pb - файл проекта. Помимо загрузки и отображения диалога я добавил немного кода (изменение содержимого эдит-контрола в зависимости от положения ползунка трэкбара)






Скачать (1.4Kb) | Исходники | 2009-02-06, 4:58 AM | 784 | 784 | 4 | 0.0/0



Комментарии

Всего комментариев: 4
0  
4 SofT_MANiAC   (2009-02-06 6:50 PM)
Как сделать так чтобы диалог по закрытии передавал данные в приложение?

Case #WM_COMMAND
ID = PeekW(@wParam)
Select ID
Case #IDC_BTN1
EndDialog_(hDlg, SendMessage_(GetDlgItem_(hDlg, #IDC_TRB1), #TBM_GETPOS, 0, 0))

Для этого используется EndDialog_ - эта функа уничтожает диалог и вторым ее параметром служит то что вы хотите передать в основной код.
В данном случае это значение ТрэкБара


0  
3 SofT_MANiAC   (2009-02-06 6:46 PM)
Как узнать хэндл контрола? Для манипуляции с контролами внутри каллбэка без их хэндлов никак..

h = GetDlgItem_(hDlg, #IDC_EDT1)

Первым параметром вставляйте хэндл самого диалога, вторым - ID контрола, который вы задали в редакторе ресурсов


0  
2 SofT_MANiAC   (2009-02-06 6:42 PM)
В каллбэк при инициализации диалога можно передать параметр
За это отвечает последний параметр DialogBoxParam_

Как его получить в каллбаке? Обратите внимание на следующий код:

Select uMsg
Case #WM_INITDIALOG
MessageBeep_(lParam)

Когда происходит инициализация, окну посылается #WM_INITDIALOG
А то что передаем содержится в lParam


0  
1 SofT_MANiAC   (2009-02-06 6:42 PM)
Продолжаем

Побалуемся с меню

Исправим файл ресурсов:

#define IDD_DLG1 1000
#define IDC_BTN1 1002
#define IDC_STC1 1001
#define IDC_TRB1 1003
#define IDC_TRB2 1004
#define IDC_EDT1 1005
#define IDC_TAB1 1006
#define IDR_MENU1 10000
#define IDM_dfgdf 10001
#define IDM_yui 10002

IDD_DLG1 DIALOGEX 10,10,435,337
CAPTION "IDD_DLG"
FONT 8,"MS Sans Serif",0,0,0
MENU IDR_MENU1
STYLE 0x10CF0000
BEGIN
CONTROL "IDC_BTN",IDC_BTN1,"Button",0x50010000,291,111,48,36
CONTROL "IDC_STC",IDC_STC1,"Static",0x50000000,24,126,42,21
CONTROL "",IDC_TRB1,"msctls_trackbar32",0x50000000,0,6,150,18
CONTROL "",IDC_TRB2,"msctls_trackbar32",0x50000000,0,28,150,18
CONTROL "",IDC_EDT1,"Edit",0x50010000,150,6,30,12,0x00000200
CONTROL "",IDC_TAB1,"SysTabControl32",0x50018000,114,168,156,126
END

IDR_MENU1 MENU
BEGIN
POPUP "dfgdfgdfg"
BEGIN
MENUITEM "dfgdfgdfgdfg",IDM_yui
END
END

Обновим константы

#IDD_DLG1 = 1000
#IDC_BTN1 = 1002
#IDC_STC1 = 1001
#IDC_TRB1 = 1003
#IDC_TRB2 = 1004
#IDC_EDT1 = 1005
#IDC_TAB1 = 1006
#IDR_MENU1 = 10000
#IDM_dfgdf = 10001
#IDM_yui = 10002

Терерь нам как то надо в каллбэке обрабатывать выбор пункта меню
Добавим в каллбэк это:

Case #WM_COMMAND
Select ID
Case #IDM_yui
debug "Menu clicked!"




Добавить комментарий

Имя *:
Email:
WWW:
Код *: