세트

2016-08-06 2 views
0

내가 작업 표시 줄에 아이콘을 설정 (마이크로 소프트 페이지 here에서)이 코드 이 C++로는 Win32 API를 사용하여 작업 표시 줄의 아이콘에 통보,하지만 난 거기에 어떤 아이콘을 표시 할 수 없습니다.세트

//Notification 
    nid.cbSize = sizeof(nid); 
    nid.uFlags = NIF_ICON | NIF_TIP | NIF_GUID; 

    // Note: This is an example GUID only and should not be used. 
    // Normally, you should use a GUID-generating tool to provide the value to 
    // assign to guidItem. 

    static const GUID myGUID = 
    { 0x23977b55, 0x10e0, 0x4041,{ 0xb8, 0x62, 0xb1, 0x95, 0x41, 0x96, 0x36, 0x68 } }; 
    nid.guidItem = myGUID; 
    nid.hIcon = LoadIconA(wc.hInstance, IDC_ARROW); 
    // This text will be shown as the icon's tooltip. 
    StringCchCopy(nid.szTip, ARRAYSIZE(nid.szTip), title); 

//TaskBar 
     nid.hWnd = hwnd; 
     // Show the notification. 
     Shell_NotifyIcon(NIM_ADD, &nid) ? S_OK : E_FAIL; 

누군가 제발 나를 도와 줄 수 있습니까? 나는 작업 표시 줄의 공간을 확보하지만 "투명"합니다.

답변

1

아이콘을로드하는 코드가 실패합니다. 오류를 확인하지 않았습니다. LoadIcon이 NULL을 반환하는 것을 보았을 것입니다.

IDC_ARROW는 아이콘이 아닌 커서를 식별하므로 LoadCursor와 함께 IDC_ARROW를 사용합니다. 또한 문서에서 설명한대로 시스템 커서이므로 모듈 핸들에 NULL을 전달해야합니다. 그러나 어떤 경우에도 아이콘을로드해야합니다.

따라서, 아이콘을로드하여 문제를 해결하십시오. LoadIcon이 NULL이 아닌 값을 반환하는지 확인하십시오. 일반적으로 아이콘 리소스를 실행 파일에 연결하여로드합니다. 테스트 목적으로 LoadIcon의 설명서에서 설명한대로 미리 정의 된 아이콘 중 하나를 사용할 수 있습니다.

그리고 오류 검사를 게을리하지 마십시오.