Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.113.68] |
|
Сообщ.
#1
,
|
|
|
можно ли каким нибудб образом изменить текст кнопок в MessageBox?
|
Сообщ.
#2
,
|
|
|
Можно -
ставиш hook WH_CBT перед вызовом MessageBox Ловиш событие HCBT_ACTIVATE и меняеш текст в нужных тебе контролах... |
Сообщ.
#3
,
|
|
|
2 migel & LamerD!
Есть способ для извращенцев! Работать должен на 99,(9)\%. У меня пашет! Так вот: Ставим таймер на малое количество сек (мсек): SetTimer(NULL, 1, 100, (TIMERPROC)TimerProc); Потом показываем мессагу: MessageBox(NULL, "lol", "Time", MB_TOPMOST | MB_OK); А потом в TimerProc делаем следующее: void TimerProc() { HWND hwnd; hwnd = FindWindow("#32770", "Заголовок окна, если знаешь"); // Ищем мессадж бокс hwnd = FindWindowEx(hwnd, NULL, "Static", NULL); // Ищем на нем статик с текстом SetWindowText(hwnd, "GY"); // Ставим свой текст! Sleep(3000); DestroyWindow(GetParent(hwnd)); // Дестроим мессаджжж бокс:) // Можно через EndDialog... } Способ для извращенцев, но ... |
Сообщ.
#4
,
|
|
|
Отлично, пошел и первый способ и второй
А как найти все контрлы заданного типа не зная как они называются, т.е. когда я вызываю FindWindowEx() с параметром NULL в названии окна она по умолчанию дает хзндл на первое окно а как получит хендл следующего? |
Сообщ.
#5
,
|
|
|
Про ID контролов:
Запускаем Spy++ ("\%root\%\Microsoft Visual Studio\Common\Tools\SPYXX.EXE", т.е. в тулзах), а далее: 1) Spy -> Find Window -> Кликаем на "кружок" 2) Наводим на нужное окно (баттон тоже окно:) и кликаем OK 3) Смотрим его ID (General -> Control ID!) Про следующее окно: ИМХО, юзай EnumWindows и GetNextWindow ...! |
Сообщ.
#6
,
|
|
|
Спасибо.
Про Spy я конечно знаю меня интересовал подход с точки зрения программирования.Ну короче GetNextWindow - это оно. |
Сообщ.
#7
,
|
|
|
HWND hChilds = GetWindow(hDialog, GW_CHILD);
while (hChilds) { // GetClassName if wanna filter childs by they class name // or implement some other filters hChilds = GetWindow(hChilds, GW_HWNDNEXT); } |
Сообщ.
#8
,
|
|
|
А я бы не спошёл на такое явное извращение. Скачай готовый класс-расширение месадж бокса с codeprojet.com
|