2010-04-07 18 views
1

Je crée un nouveau bureau avec CreateDesktop et je veux obtenir c'est DC & RC.Recevez DC & RC à partir du nouveau bureau

RECT deskRC; 
    HDC deskDC; 
    HDESK hNewDesktop = CreateDesktop(...); 

    GetWindowRect(hNewDesktop, &deskRC); 
    deskDC = GetDC(hNewDesktop); 

Ceci ne renvoie que les 0. Quel est le problème? Ou peut-être existe-t-il un autre moyen d'obtenir ces valeurs.

P.S .: Le bureau crée normalement. Un autre problème:

Merci. J'ai rencontré un autre problème, avec DC cette fois.

HDESK hNewDesktop = CreateDesktop("text_here", NULL, NULL, 0, GENERIC_ALL, NULL); 
    SetThreadDesktop(hNewDesktop); 
    SwitchDesktop(hNewDesktop); 

HWND deskHW = GetDesktopWindow(); 
GetWindowRect(deskHW, &deskRC); 
deskDC = GetWindowDC(deskHW); 

deskDC est incorrect :((testé avec un original et il était OK, je l'utilise pour dessiner des trucs)

Aucune idée de ce qui ne va pas cette fois-ci

Répondre

1

travail GetWindowRect et GetDC avec des fenêtres. Un bureau n'est pas une fenêtre Vous pouvez essayer de basculer sur le bureau via SwitchDesktop puis obtenir sa fenêtre via GetDesktopWindow, n'oubliez pas de revenir au bureau précédent

+0

Merci Un nouveau problème est apparu. –

+0

Qu'est-ce que vous m Sean que c'est "incorrect"? J'ai juste essayé et j'ai un handle DC non-NULL. – Luke