0
Windows 7/8 용 사용자 지정 셸을 만듭니다. 셸용 사용자 지정 트레이는 어떻게 만듭니 까? 트레이 창에 "Shell_TrayWnd"클래스 이름이 있다는 것을 알고 있습니다. 나는 그것을 독자적으로 창조하는 것을 시도하고 PostMessage를 사용하여 "TaskbarCreated"메시지를 배치했다 그러나 나는 나의 쟁반 WndProc에있는 "WM_COPYDATA"메시지를 얻고 있지 않다. 나는 뭔가를 놓치고있어? 도움이 필요하다. 다음과 같이사용자 지정 셸용 사용자 지정 시스템 트레이
코드는 다음과 같습니다
static LRESULT CALLBACK tray_proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_COPYDATA)
{
COPYDATASTRUCT *cpdata = (COPYDATASTRUCT*)lParam;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int init_tray(void)
{
WNDCLASS wc;
memset(&wc, 0, sizeof(wc));
wc.lpfnWndProc = tray_proc;
wc.hInstance = GetModuleHandle(NULL);
wc.lpszClassName = TEXT("Shell_TrayWnd");
if (!RegisterClass(&wc))
{
return 0;
}
tray_window = CreateWindowEx(
WS_EX_TOOLWINDOW,
wc.lpszClassName,
NULL,
WS_POPUP,
0, 0, 0, 0,
NULL, NULL,
wc.hInstance,
NULL);
if (!tray_window)
return 0;
/* let running apps know that a new tray is around */
PostMessage(HWND_BROADCAST, RegisterWindowMessage(TEXT("TaskbarCreated")), 0, 0);
return 1;
}
'WM_COPYDATA'와 관련된 "TaskbarCreated"메시지를 어떻게 방송합니까? 어쩌면 고객 연락 담당자가 고객과 연락을 취해 진정한 의미의 질문을 제공해야합니다. 게시됨에 따라 전체적으로 많은 의미를 갖기 위해 컴파일되지 않습니다. – IInspectable
다른 셸에서 트레이 윈도우를 만든 후 "TaskbarCreated"메시지가 브로드 캐스팅되었습니다. 이해가되지 않는다면, 나를 도와 주겠니? 내 목표는 사용자 정의 트레이를 얻는 것입니다. –
올바른 용어로 시작하겠습니다. 그것은 쟁반으로 알려진 적이 없어요. 알림 영역입니다. –