Уроки Iczelion'а



         

Урок 11. Больше о диалоговых окнах - часть 6


В случае, если пользователь выбирает файл, мы подготавливаем строку вывода, которая будет отображаться в окне сообщения. Мы резервируем блок памяти в переменной OutрutString и затем используем API-функцию, lstrcat, чтобы соединить обе строки. Чтобы разместить строку в несколько рядов, мы должны использовать символы переноса каретки.

mov eax,ofn.lpstrFile push ebx xor ebx,ebx mov bx,ofn.nFileOffset add eax,ebx pop ebx invoke lstrcat,offset OutputString,eax

Вышеприведенные строки требуют некоторых объяснений. nFileOffset содержит индекс в ofn.lрstrFile. Hо вы не можете сложить их в месте, так размерности этих переменных разные. Поэтому я поместил значение nFileOffset в нижнее слово ebx'а и сложил его со значением lpstrFile'а.

invoke MessageBox,hWnd,OFFSET OutputString,ADDR AppName,MB_OK

Мы отображаем строку в окне сообщения.

invoke RtlZerolMemory,offset OutputString,OUTPUTSIZE

Мы должны очистить OutрutString перед тем, как заполнить его другой строкой. Поэтому мы используем функцию RtlZeroMemory для этого.

[C] Iczelion, пер. Aquila.






Содержание  Назад  Вперед