2010-04-07 49 views
1

我使用CreateDesktop創建新桌面並希望獲得它的DC & RC。從新桌面獲得DC&RC

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

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

這隻返回0。 什麼問題?或者也許有另一種獲得這些價值的方法。

P.S .:桌面正常創建。

還有一個問題:

謝謝。我這次遇到了另一個問題,就是DC。

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是不正確:((與原來的測試,這是確定的,我用它繪製的東西)

不知道什麼是錯的這個時候

回答

1

與Windows GetWindowRect和GetDC的工作。 ;桌面不是窗口,你可以嘗試通過SwitchDesktop切換到桌面,然後通過GetDesktopWindow獲得它的窗口;不要忘記切換回到以前的桌面。

+0

謝謝。出現新問題。請檢查問題,請 – 2010-04-07 16:32:22

+0

你在做什麼?是否它是「不正確的」?我只是嘗試,我得到一個非NULL的DC處理。 – Luke 2010-04-07 20:29:15