How to Add Each Click on Count Result Screen

1 次查看(过去 30 天)
Hi,
I would like to add extra mouse clicks to my count result screen. The related part of the code is:
Num = numel(s);
message= sprintf(' %i Seeds',Num);
h=msgbox(message);
What I have as a screen is:
I would like to add each mouse clicks to the count result screen. Clicking on image one time "152 Seeds" will be "153 Seeds". Two clicks 154 Seeds etc. and goes on. I have also reached to the manual click counter but it provides output on command line of matlab.
How could I add each click to the count result screen?

采纳的回答

Walter Roberson
Walter Roberson 2018-9-7
msgbox returns a figure object. It would be possible to find the handle of the text string and update the String property of it. If you are doing a lot of updating then that would probably be best.
However, the easier way is to provide a title when you create the msgbox, and then each time you want to update the count, call msgbox again making sure that you provide the same title. The code will reuse the figure instead of creating a new figure in this case. It still involves more overhead than would be the case for updating the String property of the appropriate object, but it is easier to program.
  5 个评论
Murat Kocaman
Murat Kocaman 2018-9-10
My problem has been solved thank you fcor your supports.
Murat Kocaman
Murat Kocaman 2018-9-10
编辑:Murat Kocaman 2018-9-10
I used below part of the code:
message = sprintf('Click Extra Counts\nHit return when done.');
title(message, 'FontSize', 20);
button = questdlg(message, 'Continue?', 'OK', 'Cancel', 'OK');
drawnow; % Refresh screen to get rid of dialog box remnants.
if strcmpi(button, 'Cancel')
return;
end
while count < 1000 % or whatever failsafe you want.
% User clicks one point. If user types Enter/Return, x is empty.
[x,y] = ginput(1);
if isempty(x)
break;
end
% Put a cross over the point.
plot(x, y, 'o', 'MarkerSize', 24, 'LineWidth', 3);
% down the count.
count = count - 1
% Save coordinates (if desired).
allX(count) = x;
allY(count) = y;
end
Num1 = numel(s);
hold on;
Num2 = count;
message = sprintf('%i Stones', Num2);
h = msgbox(message, 'Count Result');
hold on;
Could you explain this part below?
txt = h.Children(2).Children(1);
txt.String = message;

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Just for fun 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by