반응형


기본 화면은 변한것이 없다. 단지 매 사용시마다 프로그램을 실행시키는 것이 불편하였다.
그리하여.. 트레이에 추가 하는 부분을 추가. 그리고 트레이에서 화면으로 전환시 목록 리프레쉬.

여기서 발생한 문제점
1.최소화 버튼 클릭시 화면은 숨기고 트레이에 넣었는데 상태표시줄에는 남아있었다.
2.트레이 아이콘 팝업메뉴를 넣었는데 팝업메뉴를 뛰운후 다른 위치를 클릭해도 사라지지 않는다.






1 최소화시 트레이에 넣은후 화면을 숨기기 위해 ShowWindow(hwnd, SW_HIDE)를 사용했는데...
  이렇게 할 경우 화면은 사라지지만 작업표시줄에는 사라지지 않는다 하여... 알아보니..
// 최소화를 먼저 해준후 숨겨야 작업표시줄에도 사라진다. ㅡㅡ;;

2.트레이 아이콘에 이벤트 발생시 팝업을 뛰었는데 그게 한번 뜨면 그 메뉴를 선택하지 않는 이상 안사라진다.
  이럴경우 메뉴를 화면에 보여주는 TrackPopupMenu()를 호출하기 전에 SetForegroundWindow(hwnd)를 호출

반응형

Guda Project의 API 플밍 2번째 GudaMoreTran 입니다.

왜 GudaMoreTran 인가?

Guda Project + 메신저명의 일부 + transparency(투명)



개인적으로 사용하고 있는 메신저에 투명화 기능이 존재 하지 않기에...

API도 공부할겸 한번 만들어 보았다. 아직 수정 보완해야 할 부분이 많지만.

원하는 기능은 정상적으로 작동하기에 일단 프로젝트 완료.. 후에 업데이트 해야겠다.

일단 현재 떠있는 채팅창의 목록이 화면에 보이는 리스트 박스에 뜨게 되어있다.

어플 로딩시 갱신되지만 실시간으로 갱신되지 않기 때문에 투명화 하고 싶은 창을 선택전에

새로고침 버튼을 눌러서 갱신해야 한다. 그리고 투명화 하고자 하는 채팅창을 선택하고

아래 투명도를 조절하여 선택 적용을 하면 선택창만 투명화가 적용된다.

모든 채팅창을 동일한 투명도로 적용하고자 한다면 투명도를 조절하고 전체적용버튼을 클릭.^^

이후에는 업데이트시 기타 잘잘한 기능을 추가 하고자 한다.^^

주 목적은 개인적으로 필요한 기능을 구현하고 API 프로그래밍의 공부를 위해서 시작한것이다.

다른 분들에게는 필요 없는 어플이기에 여기에 공개는 하지 않겠다.^^
반응형

GetDesktopWindow
: 데스크탑 윈도우(루트 윈도우)의 핸들을 반환해준다.

HWND GetDesktopWindow(VOID);
ex) 데스크탑 윈도우에 출력하는 소스


EnumWindows
: 차일드 윈도우를 제외한 모든 윈도우를 검색한다. 그러나 시스템이 생성한 최상위 윈도우중에서
  WS_CHILD 스타일을 가지고 있으면 예외적으로 검색에 포함된다.

BOOL EnumWindows(     
    WNDENUMPROC lpEnumFunc,    //찾은 윈도우를 처리해줄 프로시저
    LPARAM lParam              //특정 사용자 정의 데이터를 콜백함수로 넘겨준다. 없을경우 NULL
);

EnumWindowsProc
EnumWindows에서 윈도우를 찾으면 EnumWindowsProc으로 값을 넘겨준다. 여기서 처리
EnumWindowsProc(
    HWND hWnd,                 //검색된 윈도우의 핸들
    LPARAM lParam              //EnumWindows에서 넘겨준 lParam값
);
ex) 윈도우 검색정보를 출력


EnumChildWindows
:특정 부모윈도우의 차일드만 검색
BOOL EnumChildWindows(      

    HWND hWndParent,
    WNDENUMPROC lpEnumFunc,
    LPARAM lParam
);

EnumThreadWindows
:스레드에 속한 윈도우 목록을 조사하는 함수들
BOOL EnumThreadWindows( 
    DWORD dwThreadId,
    WNDENUMPROC lpfn,
    LPARAM lParam
);

+ Recent posts