Конференция "WinAPI" » Создание главного меню на WinCE [WinXP]
 
  • AnarchyMob © (07.11.08 01:46) [0]
    Возник такой вопросец, как используя только WinAPI создать Menu Bar на WinCE и вставить туда элементы из ресурса. Смотрел соответствующюю функцию в KOL_CE сделал как там, но что-то не вышло, наверное делал что-то не так, подскажите пожалуйста.
  • brother © (07.11.08 04:17) [1]
    > сделал как там, но что-то не вышло, наверное делал что-то
    > не так, подскажите пожалуйста.

    и что ты хочешь услышать? где код? где конкретная ошибка или строка в коде, где появляется ошибка??? Ты думаешь, что тут все телепаторы?
  • AnarchyMob © (07.11.08 12:18) [2]
    Пишу такой код, я вывел его в отдельную функцию:

    function CreateMenuBar(hInst: HANDLE; Parent: HWND; ResID: Integer): HWND;
    var
     mbi: SHMENUBARINFO;
     BR: TRect;
    begin
     Result := HWND(nil);
     GetWindowRect(Parent, BR);
     mbi.hwndMB := SHFindMenuBar(Parent);
     if mbi.hwndMB <> 0 then
     begin
       DestroyWindow(mbi.hwndMB);
       mbi.hwndMB := 0;
     end;
     FillChar(mbi, SizeOf(mbi), 0);
     mbi.cbSize := sizeof(mbi);
     mbi.hwndParent := Parent;
     mbi.nToolBarId := ResID;
     mbi.hInstRes := hInst;
     if SHCreateMenuBar(@mbi) then
     Result := mbi.hwndMB;
    end;



    Но что-то ничего, и размеры окна подбирал и строку
    Result := HWND(nil);

    удалял и ни чего. При сообщении WM_CREATE я делал так:
    CreateMenuBar(hInstance, Wnd, 2001);
       FillChar(s_sai, SizeOf(s_sai), 0);
       s_sai.cbSize:=sizeof(s_sai);

    s_sai это SHACTIVATEINFO, а в WM_ACTIVATE вставлял
    SHHandleWMActivate(Wnd, wParam, lParam, @s_sai, 0);

    что я только с этим кодом не делал всё равно неполучается. Как в Win32 хорошо при регистрации класа указал и всё, или в CreateWindowEx помойму в девятом параметре.
 
Конференция "WinAPI" » Создание главного меню на WinCE [WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]