Я не уверен, что понимаю то, чего Вы пытаетесь достигнуть, поскольку мы не имеем что username()
как предполагается, возвращается, но Вы могли бы хотеть попробовать что-то как этот. Я также рекомендовал бы, чтобы Вы не повторяли целую страницу и скорее использовали что-то как этот, намного легче считать и поддержать:
<?php
require_once ( 'username.php' );
if (isset($_POST)) {
$textfield = $_POST['textfield']; // this will get you what was in the
// textfield if the form was submitted
}
?>
<form name="form1" method="post" action="<?php echo($_SERVER['PHP_SELF']) ?">
<p>Your username is: <?php echo(username()) ?></p>
<p>
<label>
<input type="text" name="textfield" id="textfield">
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Submit">
</label>
</p>
</form>
Это отправит результаты на той же странице. В таким образом, первый раз Вы отображаете страницу, только пустую форму показывают, если Вы нажимаете на, отправляют, поле текстового поля будет в $textfield
переменная и Вы можете отобразить его снова, как Вы хотите.
Я не знаю если username()
функция, как предполагалось, возвратила Вас URL того, куда необходимо отправить результаты, но это - то, что Вы хотели бы в action
атрибут Вашей формы. Я подавил результат в демонстрационном абзаце, таким образом, Вы видите, как можно отобразить результат. Посмотрите, что "Ваше имя пользователя является..." частью.
//Редактирование:
Если Вы хотите отправить значение, не оставляя страницу, Вы хотите использовать Ajax. Сделайте поиск на jQuery на StackOverflow или на Google.
Вы, вероятно, хотели бы иметь свой возврат функции имя пользователя вместо эха это все же. Но если Вы абсолютно хотите повторить его от функции, просто назовите его как этот <?php username() ?>
в Вашей HTML-форме.
Я думаю, что необходимо будет понять поток процесса клиент-сервер страниц прежде, чем идти далее. Скажем, то, что пример кода выше называют form.php.
Хм, я бы подумал, что HCBT_MOVESIZE - это именно то, что вам нужно, учитывая, что MSDN говорит о перехватах CBT:
The system calls this function before activating, creating, destroying, minimizing, maximizing, moving, or sizing a window.
и в частности:
HCBT_MOVESIZE A window is about to be moved or sized.
(эти цитаты были взяты из http://msdn.microsoft.com/en-us/library/ms644977%28VS.85%29.aspx )
... так что я бы подумал, что вы получите HCBT_MOVESIZE звоните вовремя. Функция ловушки, которая обрабатывает HCBT_MOVESIZE, также может возвращать целое число, чтобы система могла определить, разрешена ли операция или ее следует предотвратить. Следовательно, учитывая, что ловушка HCBT_MOVESIZE должна иметь опцию для предотвращения операции, я бы сказал, что она вызывается до того, как произошло событие перемещения.
Вы действительно уверены, что функция ловушки вызывается после события перемещения ? Если вы выполняете вызов GetWindowRect для конкретного дескриптора в своей функции-перехватчике,
Крючки довольно тяжелые. Вы можете использовать их только тогда, когда вам это абсолютно необходимо.
Тем не менее, вы можете использовать один из основных хуков просто как способ войти в процесс. Оказавшись в процессе, вы можете создать подкласс интересующего вас окна и обрабатывать сообщения об изменении размера в вашем подклассе proc вместо того, чтобы пытаться поймать все на уровне ловушки.
В зависимости от того, что вы хотите сделать в ответ на изменение размера , вам может понадобиться межпроцессное взаимодействие.