|
Чуть модифицировать Color Common Dialog
|
|||
---|---|---|---|
#18+
Задача такая. Есть форма, на ней Picturebox. Надо чтоб пользователь мог задавать его цвет (как ему нравится). Хочу сделать: пользователь щелкает правой кнопкой мыши по панельке (ну или DoubleClick), появляется окно Color, он задает цвет. Ну, естественно в стандартном виде сделал. Задачи: 1. поменять текст заголовка окна Color 2. вывести кнопку Help, написать на ней Reset (дефолтный цвет) 3. при нажатии на Help закрывать окно и сбрасывать цвет на дефолтный 4. окно должно выводиться в районе Picturebox, а не рядом с заголовком формы. (Иначе все это не очень красиво выглядит) Думал справлюсь с ходу. Почему думал, потому что есть хороший опыт с Open/Save. Но не тут то было. >1. поменять текст заголовка окна Color Стандартно задать нельзя. Но справился. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Причем сразу обратил внимание, что получилось с SendMessage(hwnd а не с hWndParent >2. вывести кнопку Help, написать на ней Reset Вывел, но CDM_SETCONTROLTEXT (где Private Const ID_HELP = &H40E 'Help Button) не работает (хотя по MSDN с Color вроде как и не должно, там Open/Save упомянаются, но как то нечетко). С Open/Save это работало. Пробовал hwnd, hWndParent ID_CANCEL для проверки - не помогает. Конечно могу попробовать FindWindow(кнопка)+SetWindowText, но фиг ее знает - на китайском Help по-другому пишется. Т.е. как -то надо найти ID_HELP. >3. Как ID_HELP нажать, т.е. вставить код при нажатии. Для Open/Save Код: vbnet 1.
Но здесь это кажется хитрее делается, пока не понял. >4. окно должно выводиться в районе Picturebox, а не рядом с заголовком формы. Пытался по простому. Код: vbnet 1.
выводит Color под заголовком myForm, а у меня панель справа - далеко очень выводится Пробовал Код: vbnet 1.
-не хочет перемещать. Что, только сабклассить, делать SetWindowPos и при этом смотреть "Где Taskbar?", чтоб не вылезла за экран? Ну, в принципе с Open/Save я такое делал, но хотелось нахаляву. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2013, 15:11 |
|
Чуть модифицировать Color Common Dialog
|
|||
---|---|---|---|
#18+
Ну в принципе все делается через Код: vbnet 1. 2. 3. 4.
2. вывести кнопку Help, написать на ней Reset (дефолтный цвет) Код: vbnet 1. 2. 3.
3. при нажатии на Help закрывать окно и сбрасывать цвет на дефолтный Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
4. окно должно выводиться в районе Picturebox, а не рядом с заголовком формы. Это пожалуй самое муторное с учетом того чтоб не залезала под Taskbar. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2013, 06:50 |
|
|
start [/forum/topic.php?fid=60&msg=38280310&tid=2156938]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 269ms |
total: | 413ms |
0 / 0 |