Сейчас на форуме: (+4 невидимых) |
eXeL@B —› Вопросы новичков —› Кнопка активна (активирована) но не подсвечена |
Посл.ответ | Сообщение |
|
Создано: 29 мая 2006 20:31 · Поправил: Obsession · Личное сообщение · #1 Заранее извиняюсь, если был такой вопрос уже. Поиск юзал - ничего не нашел(значит, так юзал) В общем, есть одна кнопка(типа QWidget кстати) . Она не подсвечена, а мне надо на нее нажать. (Не подсвечена,это значит, что текст на ней не черным шрифтом написан, а рельефным, с цветом остальной "формы", если можно так выразиться, ну короче, обычное дело) В общем, я написал небольшую программу по активированию таких кнопок Типа того: //деактивировать SendMessage(window,WM_ENABLE,0 ,0); EnableWindow(window,false); //активировать EnableWindow(window,true); SendMessage(window,WS_DISABLED,0 ,0); Вот. На разных кнопках пробовал - работает, а тут - нет. Потом неожиданно наткнулся на очень удобную прогу InqSoft Window Scanner. Она сразу и координаты пишет и другую различную информацию об окнах (раньше мне приходилось вручную писать такие утилиты, если до чего-то надо было добраться, даже скопилось много громоздких(неудобных) утилит) Так вот, она выдала, что это окно активно. Но ведь оно при этом неподсвеченно остается! Рядом есть другая кнопка(в том же приложении): если ее сделать неактивной, то она не обесцвечивается, но на нее становится нельзя нажать. В общем, подскажите, в чем тут соль:есть разница между обесцвесченной кнопкой и деактивированной, что мне надо сделать, чтоб оцветить ту обесцвеченную кнопку или хотя бы что надо сделать, чтоб можно было на нее нажать? Есть ли сообщение WinApi для принудительного нажатия на кнопку? TB_PRESSBUTTON - это то, что надо? (пробовал - не получается) Пожалуйста, подскажите! |
|
Создано: 29 мая 2006 21:52 · Личное сообщение · #2 |
|
Создано: 29 мая 2006 22:02 · Личное сообщение · #3 Ara пишет: Есть ли сообщение WinApi для принудительного нажатия на кнопку? Попробовал - не помогает! Для обычной формы, созданной на Builder , работает. А для того приложения (с кнопками QWidget) не работает(ни обесцвеченная кнопка, ни любая другая из того же приложения не реагирует на это сообщение) |
|
Создано: 29 мая 2006 22:04 · Личное сообщение · #4 |
|
Создано: 29 мая 2006 22:07 · Поправил: Obsession · Личное сообщение · #5 |
|
Создано: 29 мая 2006 22:31 · Личное сообщение · #6 |
|
Создано: 30 мая 2006 00:19 · Поправил: Ara · Личное сообщение · #7 |
|
Создано: 30 мая 2006 07:14 · Личное сообщение · #8 |
|
Создано: 30 мая 2006 08:02 · Поправил: Obsession · Личное сообщение · #9 PE_Kill пишет: WM_KEYDWON WM_KEYDUP Вот этот метод, кстати, я довольно хорошо освоил. (только не KEY, а MOUSE) BM_CLICK для меня в новинку, хотя ничего принципиально нового. Кстати сказать,метод WM_MOUSEDOWN - WM_MOUSEUP почему-то не всегда срабатывает. Например, если посылать сообщения окнам типа TGroupButton, то очень часто не происходит нажатие. Уж не знаю почему. Меня насторожил тот факт, что в установщике библиотеки QT для Visual Studio (который написан, повидимому, на самом QT, поскольку все окна в нем типа QVidget, что характерно для QT) кнопка по сути активная оказалась по факту неактивной. Вообще, это довольно весело. Например, intellij idea jet brains (среда для работы с java) сама написана на java. Я, конечно, не очень секу фишку, но, по-мойму, и защиты никакой особой не надо писать. Вот, как победить QVidget не знаю. Вроде Ara пообещал какую-то тулзу, но я ее не могу отыскать. Ara, дай, пожалуйста, прямую ссылку, будь другом! PS Да, и я прошу прощения, я , наверное, довольно неясно выразился. Под принудительным нажатием я подразумевал, что кнопка нажмется при любых условиях, в каком бы состоянии она ни была: хоть disabled(enable=false), хоть canceled, хоть invisible. А с помощью простых сообщений - это скорее просто программное нажатие, чем принудительное. |
|
Создано: 30 мая 2006 08:07 · Личное сообщение · #10 |
|
Создано: 30 мая 2006 08:14 · Поправил: Obsession · Личное сообщение · #11 SendMessage(hwnd,WM_KEYDOWN,0 ,0); SendMessage(hwnd,VK_SPACE,0 ,0); SendMessage(hwnd,WM_KEYUP,0 ,0); SendMessage(hwnd,VK_SPACE,0 ,0); так? Вот, я попробовал сейчас вот эти 4 сообщения - не работает! PS Кстати, я и сам ошибся: не WM_MOUSEDOWN, а WM_LBUTTONDOWN соответственно, не WM_MOUSEUP, а WM_LBUTTONUP |
eXeL@B —› Вопросы новичков —› Кнопка активна (активирована) но не подсвечена |