|
유영인.Chris 님이 쓰신 글 :
: TrayBar의 버그로 어플리케이션이 비정상적으로 종료가 되면 나타나는 문제입니다. 그렇기 때문에 어플리케이션에서 어떤식으로 만들어도 그 버그는 나타나게 됩니다. 이 문제는 Builder 뿐만이 아니라 모든 어플리케이션에서 공통적으로 일어나는 문제입니다.
:
: 강제적으로 Refresh 시켜주는 방법 또한 먹지 않습니다. (부분적인 OS에서만 되는것 같더군요) 그래서 그냥 고전적인 방법으로 마우스를 아이콘 각각에 위치시키는 방법을 몇몇 어플리케이션에서는 사용하고 있습니다.
:
: 아래 소스는 해당하는 그 소스로, 제가 만든건 아니고 델파이로 뉴스그룹에 돌아다니던걸 빌더로 포팅해 본것 입니다. 테스트도 해봤는데, 잘 동작되네요.
:
:
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:
: HWND hdHandle;
: RECT rtRect;
: int itWidth, itHeight, itX, itY;
: tagPOINT tpPosition;
:
:
: hdHandle = FindWindowEx(FindWindow("Shell_TrayWnd", NULL), 0, "TrayNotifyWnd", NULL);
: GetWindowRect(hdHandle, &rtRect);
:
: itWidth = GetSystemMetrics(SM_CXSMICON);
: itHeight = GetSystemMetrics(SM_CYSMICON);
:
:
: GetCursorPos(&tpPosition);
:
: for(itY = 0; itY <= (rtRect.bottom - rtRect.top) / itHeight; itY ++)
: for(itX = 0; itX <= (rtRect.right - rtRect.left) / itWidth; itX ++) {
: SetCursorPos(rtRect.left + itX * itWidth, rtRect.top + itY * itHeight);
: Sleep(0);
: }
:
: SetCursorPos(tpPosition.x, tpPosition.y);
:
:
: RedrawWindow(hdHandle, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW);
:
: }
: //---------------------------------------------------------------------------
:
:
: 박용우 님이 쓰신 글 :
: :
: : 답변이 없어서.. 한번 더 올립니다
: : 혹시 방법이 없는건가요???
: :
: :
: :
: : 시스템 트레이 부분에 트레이 아이콘을 지우고 났는데도..
: : 비정상 종료 되면. .아이콘이 남아 있군요
: :
: : 이것을 없애려면... 마우스로 그 트레이 아이콘 위에 가야 없어지더라구요...
: :
: :
: : 아마도.. 마우스가 그 트레이 아이콘 위에 가면 repaint 하는거 같은데.. .
: : 시스템 트레이 부분을 repaint 하는 방법은... 없을까요...
: :
: : 고수님들 가르쳐 주세요...
: :
: : ^^; 부탁합니다 꾸우뻑
: :
|