Results 1 to 2 of 2

Thread: Shell_NotifyIcon

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Dec 2000
    Location
    Indiana
    Posts
    73
    I made an app a while back, Ill look for it
    if(GetWindowLong(hwnd,GWL_ID)==IDC_MICROSOFT_APPLICATION)
    {
    SetWindowText(hwnd,"I suck.");
    SendMessage(hwnd,WM_START_SUCKING,0,0);
    SendMessage(hwnd,WM_CRASH,0,0);
    }

  2. #2

    Thread Starter
    Lively Member
    Join Date
    Dec 2000
    Location
    Indiana
    Posts
    73
    PHP Code:
    //Thanks to [url]www.winprog.org[/url]

    #include <windows.h>
    #define AD_TASKBAR    9001
      //This is a WM type thingy

    const char g_szClassName[] = "myWindowClass";

    void SystrayOn(HWND hwnd
      
    //Adds the system tray icon. CHANGE THESE PHRASES!
    {
      
    NOTIFYICONDATA Tic;
      
    char tip[64];
      
    lstrcpy(tip,"Test");
      
    Tic.cbSize=sizeof(Tic);
      
    Tic.hWnd=hwnd;
      
    Tic.uID=1;
      
    Tic.uFlagsNIF_ICON NIF_MESSAGE NIF_TIP;
      
    Tic.uCallbackMessage=AD_TASKBAR;
      
    Tic.hIcon=LoadIcon(NULL,IDI_APPLICATION);
      
    lstrcpy(Tic.szTip,"Test");
      
    Shell_NotifyIcon(NIM_ADD,&Tic);
    }

    //Removes the systray icon
    void SystrayOff(HWND hwnd)
    {
      
    NOTIFYICONDATA Tic;
      
    Tic.cbSize=sizeof(Tic);
      
    Tic.hWnd=hwnd;
      
    Tic.uID=1;
      
    Shell_NotifyIcon(NIM_DELETE,&Tic);
    }

    LRESULT CALLBACK WndProc(HWND hwndUINT msgWPARAM 
       wParam
    LPARAM lParam)
    {
      switch(
    msg)
      {
        
    //If the taskbar had an action, switch it
        
    case AD_TASKBAR:
          switch(
    lParam)
          {
            case 
    WM_LBUTTONDOWN:
              
    MessageBox(NULL,"Click","Click",0);
              break;
            
    //Process other messages here
          
    }
          break;
        case 
    WM_CREATE:
          
    //On create, turn on the systray
          
    SystrayOn(hwnd);
          break;
        case 
    WM_CLOSE:
          
    //And remove it
          
    SystrayOff(hwnd);
          
    DestroyWindow(hwnd);
          break;
        case 
    WM_DESTROY:
          
    PostQuitMessage(0);
          break;
        default:
          return 
    DefWindowProc(hwndmsgwParamlParam);
      }
      return 
    0;
    }

    int WINAPI WinMain(HINSTANCE hInstanceHINSTANCE
       
    hPrevInstanceLPSTR lpCmdLineint nCmdShow)
    {
      
    WNDCLASSEX wc;
      
    HWND hwnd;
      
    MSG Msg;
      
    wc.cbSize        sizeof(WNDCLASSEX);
      
    wc.style         0;
      
    wc.lpfnWndProc   WndProc;
      
    wc.cbClsExtra    0;
      
    wc.cbWndExtra    0;
      
    wc.hInstance     hInstance;
      
    wc.hIcon         LoadIcon(NULLIDI_APPLICATION);
      
    wc.hCursor       LoadCursor(NULLIDC_ARROW);
      
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
      
    wc.lpszMenuName  NULL;
      
    wc.lpszClassName g_szClassName;
      
    wc.hIconSm       LoadIcon(NULLIDI_APPLICATION);
      if(!
    RegisterClassEx(&wc))
      {
        
    MessageBox(NULL"Window Registration Failed!""Error!",
          
    MB_ICONEXCLAMATION MB_OK);
        return 
    0;
      }
      
    hwnd CreateWindowEx(
        
    WS_EX_CLIENTEDGE,
        
    g_szClassName,
        
    "The title of my window",
        
    WS_OVERLAPPEDWINDOW,
        
    CW_USEDEFAULTCW_USEDEFAULT00,
        
    NULLNULLhInstanceNULL);
      if(
    hwnd == NULL)
      {
        
    MessageBox(NULL"Window Creation Failed!""Error!"
          
    MB_ICONEXCLAMATION MB_OK);
        return 
    0;
      }
      
    //NOTICE NO SHOWWINDOW! This makes it so you cant see
      //the window
      
    UpdateWindow(hwnd);
      while(
    GetMessage(&MsgNULL00))
      {
        
    TranslateMessage(&Msg);
        
    DispatchMessage(&Msg);
      }
      return 
    Msg.wParam;
    }

    //Thanks again, winprog.org 

    There ya go!
    if(GetWindowLong(hwnd,GWL_ID)==IDC_MICROSOFT_APPLICATION)
    {
    SetWindowText(hwnd,"I suck.");
    SendMessage(hwnd,WM_START_SUCKING,0,0);
    SendMessage(hwnd,WM_CRASH,0,0);
    }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width