大家好,我用
        DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);
创建了一个对话框程序,在WM_INITDIALOG消息中调用:
        hIcon = LoadIcon(inst,MAKEINTRESOURCE(IDC_ICON));
        SendMessage (hDlg, WM_SETICON, (WPARAM)ICON_BIG, (LPARAM)hIcon);
        SendMessage (hDlg, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)hIcon);
来设置图标。程序图标和任务栏图标都改过来了,但标题栏上依然是默认的图标。该怎么修改呢?多谢!

解决方案 »

  1.   

    SendMessage(hwnd, WM_SETICON, ICON_BIG,  (LPARAM) 
    LoadIcon((HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE), 
    MAKEINTRESOURCE(IDC_ICON)));
    SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM) 
    LoadIcon((HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE), 
    MAKEINTRESOURCE(IDC_ICON)));
      

  2.   

    //检查一下 LoadIcon 的 inst 是否正确。
      

  3.   

    在WM_INITDIALOG中LoadIcon的第一参数从何传入?最好在调用DialogBox之前LoadIcon.
      

  4.   


    inst没有错啊。换了你的方法还是不行:-(
      

  5.   

    图标的 ID 值是 IDC_ICON ?一般应该是 IDI_XXX。
      

  6.   

    好了。谢谢大家^^原来不能用默认的IDC_ICON,这个大概与系统中某个资源的ID冲突了。换个名字就可以了
      

  7.   

    在WM_INITDIALOG中LoadIcon的第一参数从何传入?最好在调用DialogBox之前LoadIcon.原来不能用默认的IDC_ICON................晕