Ввод Кнопки Изображения
Вы можете обрабатывать кнопку изображения просто как кнопка — то есть вызывать отдельное действие. Однако, PDB средство также дает Вам опцию определения областей кнопки так, чтобы принятое действие зависело, на которой части кнопки изображения пользователь выбирает. Механизм для этого прямой: действие кнопки изображения или повторный вызов возвращают (X, Y) местоположение, которое пользователь выбрал. Координаты - в пределах диапазона специфического поля ввода кнопки изображения (как возвращено функциями измерения). Ваше приложение должно назначить значение к местоположениям на поле ввода кнопки изображения, неявно определяя области изображения.
В следующем примере, кнопка изображения имеет два цветных образчика, созданные ads_fill_image (). Вы можете выбирать один или другой, в зависимости от которой области пользователь выбирает. Если кнопка изображения разделена горизонтально (темный выше, индикатор ниже), повторный вызов должен проверить только одно измерение. Не используйте структуру точки типа ads_point, чтобы сохранить координаты pickpoint, потому что их пропускают как длинные целые числа:
char result[31]; // Global char array
static void CALLB
pick_shade(ads_callback_packet cbpkt)
{
long threshold, pick_y = cbpkt->y;
ads_hdlg hdlg = cbpkt->dialog;
short x, y;
ads_dimensions_tile(hdlg, "image_sel", &x, &y);
threshold = y/2;
// Remember the origin at upper left.
//
if (pick_y > threshold)
strcpy(result, "Light");
else
strcpy(result, "Dark");
}