Нестандартные элементы в стандартных Save и Open dialogs - VB
Формулировка задачи:
Ну, предпочитаю сейчас эти окна выводить через API, в духе как здесь.
https://www.sql.ru/forum/actualthread.aspx?bid=22&tid=730702&hl=
Вопрос в чем...
Многие программы выводят в этих окнах какие-либо нестандартные элементы.
Ну скажем предпросмотр картинки или проигрывание wav-файла.
С одной стороны элементы эти явно субъективные для разных программ, а с другой не похоже что авторы прог вручную рисуют эти "почти стандартные" Open и Save.
Пример простой задачи, которую вижу: при сохранении картинки SaveAs.. в формате jpg (JPEG) дать возможность пользователю выбрать уровень компрессии JPEG (от 1 до 100) поместив на это дело ползунок.
Как это вообще делается и решаемо ли?
https://www.sql.ru/forum/actualthread.aspx?bid=22&tid=730702&hl=
Вопрос в чем...
Многие программы выводят в этих окнах какие-либо нестандартные элементы.
Ну скажем предпросмотр картинки или проигрывание wav-файла.
С одной стороны элементы эти явно субъективные для разных программ, а с другой не похоже что авторы прог вручную рисуют эти "почти стандартные" Open и Save.
Пример простой задачи, которую вижу: при сохранении картинки SaveAs.. в формате jpg (JPEG) дать возможность пользователю выбрать уровень компрессии JPEG (от 1 до 100) поместив на это дело ползунок.
Как это вообще делается и решаемо ли?
Решение задачи: «Нестандартные элементы в стандартных Save и Open dialogs»
textual
Листинг программы
<font color="blue">Public</font> <font color="blue">Function</font> OFNHookProc(<font color="blue">ByVal</font> hWnd <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> uMsg <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> wParam <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> lParam <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> hWndParent <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> hItem <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> tNMH <font color="blue">As</font> NMHDR <font color="blue">Dim</font> Index <font color="blue">As</font> <font color="blue">Integer</font> <font color="blue">Select</font> <font color="blue">Case</font> uMsg <font color="blue">Case</font> WM_INITDIALOG hWndParent = GetParent(hWnd) <font color="blue">Call</font> SendMessage(hWndParent, CDM_SETCONTROLTEXT, ID_HELP, <font color="blue">ByVal</font> <font color="teal">"Settings"</font>) hItem = GetDlgItem(hWndParent, ID_HELP) <font color="blue">If</font> IsWindowEnabled(hItem) <font color="blue">Then</font> <font color="blue">Call</font> EnableWindow(hItem, <font color="darkblue"><b>0</b></font>) <font color="blue">Case</font> WM_NOTIFY CopyMemory tNMH, <font color="blue">ByVal</font> lParam, Len(tNMH) <font color="blue">Select</font> <font color="blue">Case</font> tNMH.code <font color="blue">Case</font> CDN_HELP MsgBox <font color="teal">"help"</font> <font color="00AA00">' Help clicked (that is settings)</font> <font color="blue">Case</font> CDN_TYPECHANGE hWndParent = GetParent(hWnd) hItem = GetDlgItem(hWndParent, ID_FILETYPE) Index = SendMessage(hItem, CB_GETCURSEL, <font color="blue">ByVal</font> <font color="darkblue"><b>0</b></font>&, <font color="blue">ByVal</font> <font color="darkblue"><b>0</b></font>&) + <font color="darkblue"><b>1</b></font> hItem = GetDlgItem(hWndParent, ID_HELP) <font color="blue">If</font> Index = <font color="darkblue"><b>4</b></font> <font color="blue">Then</font> <font color="blue">If</font> <font color="blue">Not</font> (IsWindowEnabled(hItem)) <font color="blue">Then</font> <font color="blue">Call</font> EnableWindow(hItem, <font color="darkblue"><b>1</b></font>) <font color="blue">Else</font> <font color="blue">If</font> IsWindowEnabled(hItem) <font color="blue">Then</font> <font color="blue">Call</font> EnableWindow(hItem, <font color="darkblue"><b>0</b></font>) <font color="blue">End</font> <font color="blue">If</font> <font color="blue">Case</font> <font color="blue">Else</font> <font color="blue">End</font> <font color="blue">Select</font> <font color="blue">Case</font> <font color="blue">Else</font> <font color="blue">End</font> <font color="blue">Select</font> <font color="blue">End</font> <font color="blue">Function</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д