Witam serdecznie po przerwie

Mieliśmy coś wrzucić do wczoraj, ale sprawy potoczyły się tak - ja kontynuowałem program do okien i zrobiłem program showdesktop. Pracuję teraz nad normalnym desktopem z Windows CE - nie jako program imitujący, a jako program go odblokowujący. Zauważcie, że ten Desktop jest zamykany przy starcie systemu - widać jak się ma włączone animacje okien. Robimy to teraz na spokojnie. Usercontrol mówi, że ma całkiem inną koncepcję i nie będzie kontyunował swoich programów, bo chyba ma zamiar użyć składników systemu - tego nie wiem.
W każdym razie mogę wam dać teraz kod programu do okien, który powinien wczytywać ikonę obok tytułu i automatycznie okno odsuwać od ścianek, żeby było mniej więcej na środku. Załączam też skompilowany showdesktop - warto podpiąć pod przycisk na taskbarze.
Co jeszcze będzie? Pracuję nad zapamiętywaniem pozycji okna - nie jest to trudne, jak będę miał czas to to zrobię - po zamknięciu okna następne otwarcie programu w oknie będzie go wczytywało w tej samej pozycji, okna też nie będą uciekać, wszystko jak na dużym Windowsie. Będzie też możliwość ustawienia w panelu sterowania startowej wielkości dla każdego z programów i może nawet otwieranie wszystkich progsów w oknie jak będziemy mieli taskbar na dole.
Więc tak, kod programu:
#include "StdAfx.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
HWND uchwyt = GetForegroundWindow();
if (uchwyt != FindWindow(NULL, _T("Desktop"))) {
if (((WS_VISIBLE & GetWindowLong(uchwyt, GWL_STYLE)) != GetWindowLong(uchwyt, GWL_STYLE))) {
SetWindowPos(uchwyt, HWND_TOP, 0, 26, 10, 10, SWP_NOOWNERZORDER|SWP_NOSIZE);
SetWindowLong(uchwyt, GWL_STYLE, WS_VISIBLE);
}
else {
SetWindowLong(uchwyt, GWL_STYLE, WS_CAPTION|WS_SYSMENU|WS_MAXIMIZEBOX|WS_MINIMIZEBOX|WS_SIZEBOX);
long icon;
icon = SendMessage(uchwyt, WM_GETICON, ICON_SMALL, 0);
MoveWindow(uchwyt, 50, 50, 550, 360, true);
SendMessage(uchwyt, WM_SETICON, icon, 0);
}
}
return 0;
}
I sprawa jest taka - ikonka teoretycznie jest, ale w praktyce jej nie ma. Dlaczego? Otóż użyłem funkcji, która pobiera ikonę z danego okna i przypisuje mu ją. Ale tak się okazuje, że WinAPI nie jest na tyle sprytne i okno bez ikonki nie zwróci nam ikony programu. Prosiłbym więc o pomoc w wyciągnięciu ikonki z pliku exe - myślę, że trzeba by było wziąć ścieżkę programu z rejestru i na tej podstawie później ją wyciągać. I jak widać kod nie jest dużo większy niż ten od _TB_TB_

A oto showdesktop:
http://www.bilsoftware.com/files/showdesktop.rarSkończmy to wspólnie w miarę możliwości

Teraz poprzednie screenshoty, natenczas tyle:
http://www.bilsoftware.com/files/screenshoty/windows/progs1.jpghttp://www.bilsoftware.com/files/screenshoty/windows/progs2.jpghttp://www.bilsoftware.com/files/screenshoty/windows/progs3.jpgA tu screeny z zabawy z oknami, przeglądanie zdjęć na VGA jest świetne! I niech mi nikt nie mówi, że to jest za małe - wszystko jest w dobrym rozmiarze i da się tapać bez problemu, to trzeba widzieć na żywca.
Powiem tyle, że tam są przyciski maksymalizacji i minimalizacji, tylko w WM5 nie są standardowo widoczne (ale są klikalne i po kliknięciu je już widać). Okno zmaksymalizowane dalej ma title i jest nietykalne, traci też border.
TCPMP z playlistą, dobra rzecz:
http://www.bilsoftware.com/files/screenshoty/windows/windows1.jpgTextMaker 2000 - jak widać ten program ma własne menu i nie można się do niego czepić, bo nie siedzi na belce - za to widać belkę z TCPMP pomimo tego, że aktywny jest TextMaker. Potwierdza to teorię o belkach, że każdy program ma swoją - bardzo dobrze to przetestował usercontrol.
http://www.bilsoftware.com/files/screenshoty/windows/windows2.jpgResco Explorer 2005 - standard
http://www.bilsoftware.com/files/screenshoty/windows/windows3.jpgAS, SpbWeatcher i klawiatura
http://www.bilsoftware.com/files/screenshoty/windows/windows4.jpgOzVGA, wreszcie nie zajmuje całego ekranu, jak to głupio wyglądało dwie linijki tekstu i dwa przyciski w rogu, a reszta biała.
http://www.bilsoftware.com/files/screenshoty/windows/windows5.jpgMinimo
http://www.bilsoftware.com/files/screenshoty/windows/windows6.jpgJak klikamy na "show" w Resco Explorerze to to jest też okno
http://www.bilsoftware.com/files/screenshoty/windows/windows7.jpgI jeszcze raz się pytam - zna ktoś jakiś hack żeby klawiaturka sama się nie wysuwała i sama nie chowała? W Windows CE zależy to od tapnięcia, a tu mnie denerwuje jak mi input panel wyskakuje wtedy kiedy nie trzeba, a ukrywa się wtedy kiedy coś piszę. Wiem, że takie pytanie już było ale nie pamiętam gdzie o tym było.