C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
WebBrowser, Помогите
Antonydee
Отправлено: 23.09.2006, 14:35


Ученик-кочегар

Группа: Участник
Сообщений: 5



Доброво Всем времени суток!!!

На С пишу недавно, а тут еще курсовик нужно делать вобщем столкнулся я с несколькими проблемами. Итак попорядку:
1. Пишу Браузер и как наверное все уже догадались использую ccpWebBrowser, но возникла такая проблема. Задаю URL, но страница грузится не с нета, а из ресурсов Wind'ы.
В обработчик события BeforeNavigate2 прописываю:

{
int index = CBUrl->Items->IndexOf(AnsiString(*URL));
if (index == -1)
{
CBUrl->Items->Insert(0,AnsiString(*URL));
CBUrl->ItemIndex = 0;
}
else CBUrl->ItemIndex = index;
}
Что делать мож кто подскажет?

2. Можно ли встроить ProgressBar в StatusBar? В Delphi делал, но здесь тем же сбособом не проходит.

3. Как поместить пункт MainMenu в правый угол, как в Total'е. Знаю что надо использовать функцию ModifyMenu, но видимо делаю что-то не так и изменяемый пункт просто исчезает.

4. Делаю проверку состояния клавиши "Caps Lock"

if(GetKeyState(VK_CAPITAL) == 1)
{
StatusBar->Panels->Items[2]->Text = 'CAP';
}
else StatusBar->Panels->Items[2]->Text = ' ';

загоняю все в Timer, все отлично, все работает но вместо текста САР цифры 4407632, что за черт, объясните почему так?

З.Ы. может кто подскажет функцию выставления языка типа GetDefaultLangID() токо наоборот. Ну вы поняли.
Rius
Отправлено: 23.09.2006, 15:56


Мастер участка

Группа: Участник
Сообщений: 321



1. переход на страницу делается так:
CODE
TVariant URL;
//URL = "about:blank";
URL = "http://www.74.ru";
CppWebBrowser1->Navigate2(&URL, NULL, NULL, NULL, NULL);

2. можно, для этого надо програмно присвоить свойству Parent у ProgressBar'a обьект StatusBar.
3. тут надо индекс смещаемого пункта правильно указать
CODE
//перестановка кнопки меню
ModifyMenu(MainMenu1->Handle, 3, MF_BYPOSITION | MF_HELP | MF_POPUP, (unsigned int)MenuItemHelp1->Handle, MenuItemHelp1->Caption.c_str());

4. строки в C++ указываются двойными кавычками
5. Как програмно переключить раскладку клавиатуры
CODE
procedure TForm1.Button1Click(Sender: TObject);//На русский
var
Layout: array[0.. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE);
end;

procedure TForm1.Button2Click(Sender: TObject);//На английский
var
Layout: array[0.. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout(StrCopy(Layout,'00000409'),KLF_ACTIVATE);
end;


Отредактировано Rius — 23.09.2006, 19:01
Antonydee
Отправлено: 23.09.2006, 22:54


Ученик-кочегар

Группа: Участник
Сообщений: 5



Так?..
PBPageLoad->Parent = StatusBar;
PBPageLoad->Top = 1;
PBPageLoad->Left = 1;
PBPageLoad->Height = StatusBar->Height — Top;
PBPageLoad->Width = StatusBar->Panels->Items[0]->Width — Left;
Rius
Отправлено: 28.09.2006, 06:03


Мастер участка

Группа: Участник
Сообщений: 321



можно еще задать Anchors, чтобы ProgressBar при ресайзе не смещался

Вернуться в Вопросы программирования в C++Builder