Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Windows Desktop Switcher alla Kde

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.08.2003, 10:51 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich wollte mir zum Spaß mal nen Desktop Switcher wie in KDE basteln, weil Desktop schon übergeht. Im Internet hab ich nur switcher gefunden, die den Taskbar switchen können.
Also hab ich mir nen Zeiger aufs Desktop geholt, unter der Annahme, dass das Desktop ein View ist und einen SysListView32 enthält. Dies dürfte ein CListCtrl sein.

C++:
CWnd *pWnd = CWnd::FindWindow("Progman", "Program Manager");
CWnd* pChild = pWnd->GetWindow(GW_CHILD);
HWND hWnd;
pChild->GetDlgItem(0x1, &hWnd);
ASSERT(hWnd);
CWnd* pCtrl = (CWnd*)CWnd::FromHandle(hWnd);
((CListCtrl*)pCtrl)->InsertItem(0,"dd",0);


Warum tut der nix??

Danke&mfg
PS: es kommt kein ASSERT
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.08.2003, 10:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


würde eher


C++:
ASSERT(IsWindow(hWnd));



schreiben, dann bringt das denke ich auch was
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.08.2003, 11:39 Uhr
mike
Pinguinhüpfer
(Operator)


Hi Flo
Kommt noch immer kein ASSERT, aber: ich fügs ein und er fügt tatsächlich Items ein
Jetzt brauch ich nur mehr die passenden Items jeder Exe, dann in ein Array und das wars dann eigentlich

Danke&mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.08.2003, 12:56 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!

C++:
CWnd *pWnd = CWnd::FindWindow("Progman", "Program Manager");

if(!pWnd)
return;

CWnd* pChild = pWnd->GetWindow(GW_CHILD);
HWND hWnd;
pChild->GetDlgItem(0x1, &hWnd);
ASSERT(IsWindow(hWnd));
CWnd* pCtrl = (CWnd*)CWnd::FromHandle(hWnd);
((CListCtrl*)pCtrl)->DeleteAllItems();

LPITEMIDLIST id;
static char path[1024];
SHGetSpecialFolderLocation(hWnd,CSIDL_DESKTOPDIRECTORY ,&id);
SHGetPathFromIDList(id,path);

CString strDesk;
strDesk = _T(path);
strDesk += "\\*.*";
CFileFind finder;
BOOL bWorking = finder.FindFile(strDesk);

while (bWorking) {
  bWorking = finder.FindNextFile();
  ((CListCtrl*)pCtrl)->InsertItem(0,(LPCTSTR)finder.GetFileName(),0);
}


Warum funktioniert das nur ab und zu?? Der fehler kommt immer bei InsertItem
thx&mfg
--

Dieser Post wurde am 25.08.2003 um 14:55 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.08.2003, 12:58 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


probier mal


C++:
CListCtrl *pLCtrl = ((CListCtrl*)pCtrl);
pLCtrl->InsertItem(pLCtrl->GetItemCount(),(LPCTSTR)finder.GetFileName());


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.08.2003, 13:25 Uhr
mike
Pinguinhüpfer
(Operator)


Nö geht leider auch nicht. Das kommische ist, dass zuerst ein Fehler von Explorer.exe kommt und dann erst von meinem Proggi. Und dann kann ich mein Programm nur mehr mit dem Debugger beenden. Da ist was faul

thx&mfg
PS: Ghets bei dir?
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: