2011-03-13 5 views
1

창 계산기의 양식에서 단추의 핸들을 얻으려고합니다. - "- ("# 32770 대화), ... anather 아이>FindWindowExA()를 사용하여 하위 창을 찾을 수 없습니다.

>

(CalcFrame ")"

(CalcFrame "계산기") : 스파이 ++ 다음 트리를 보여줍니다 창 ->

("", 버튼), ... 다른 자식 창

// ("창 캡션"; 창 클래스) // -> 다음 자식 수준

FindWindowExA()를 사용하여 주 창을 잡아 깊숙이갑니다.

#define wndName "Calculator" 
... 
    HWND calcHwnd = ::FindWindowA(0, wndName); 
    HWND frameHwnd = ::FindWindowExA(calcHwnd, 0, 0, 0); 
    HWND contentHwnd = ::FindWindowExA(calcHwnd, 0, "#32770 (Dialog)", 0); 
    DWORD er = GetLastError(); 

내가 사용할 수 있습니다 :: FindWindowExA (calcHwnd, 0, 0, 0) 여러 번 내가 필요로하는 HWND를 얻을 수 (그 수준에 여러 자식 창이있다). 하지만 내가 필요로하는 조건을 사용하여 HWND를 얻고 싶습니다. "# 32770 (Dialog)"클래스가 필요합니다. 하지만 :: FindWindowExA (calcHwnd, 0, "# 32770 (Dialog)", 0) - NULL을 반환합니다. GetLastError는 0을 반환합니다. 무엇이 잘못 되었습니까?

답변

2

#32770은 실제로 클래스 아톰입니다. 시도 :

HWND contentHwnd = ::FindWindowExA(calcHwnd, NULL, MAKEINTRESOURCE(32770), NULL); 
+0

감사합니다. 그것은 도왔다! – Alex

관련 문제