更改对话框的图标

时间:2010-11-26 05:50:38

标签: c++ visual-c++ dialog icons

我最近正在编辑visual c ++ 2010中的一个开源项目,我对vc ++知之甚少(我只有5天的c ++经验),我不知道我正在改变项目的一些用户界面

我的项目中只有一个图标,应用程序将主图标显示为图标,同时我想使该图标也位于对话框的标题上(当按钮处于显示状态时,将显示该对话框单击主窗体,

对话框已经在资源/对话框中,但我想更改它的图标;

3 个答案:

答案 0 :(得分:3)

您需要找到您感兴趣的对话框的对话框程序,并在WM_INITDIALOG消息处理程序中(如果它尚不存在则需要添加它)使用WM_SETICON来设置图标:

// hIcon is your icon handle
SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
SendMessage(hDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);

答案 1 :(得分:0)

如果它是MFC(例如CDialog)

,您也可以搜索LoadIcon

答案 2 :(得分:0)

希望对您有帮助

BOOL sendWndIconToTaskbar(HWND hWnd,HICON hIcon) 
{ 
    BOOL ret = TRUE; 
    ASSERT(hWnd); 
    if(!::IsWindow(hWnd)) 
        return FALSE; 
    CWnd* pWnd; 
    pWnd = pWnd->FromHandle(hWnd); 
    ASSERT(pWnd); 
    if(!pWnd) 
        return FALSE; 
    if(pWnd->GetParent())
    {
        if(::SetWindowLong(hWnd,GWL_HWNDPARENT,NULL) == 0) 
            return FALSE; 
    }


    if(!(pWnd->ModifyStyle(NULL,WS_OVERLAPPEDWINDOW))) 
        ret = FALSE; 
    pWnd->SetIcon(hIcon,TRUE); 
    pWnd->SetIcon(hIcon,FALSE); 

    return ret; 
} 

HICON hIconSm = (HICON)LoadImage(NULL, "default.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
sendWndIconToTaskbar(pOcxDlg->m_hWnd,hIconSm);