怎么改变对话框的图标?

解决方案 »

  1.   

    void CTestDlg::OnPaint() 
    {
    if (IsIconic())
    {
    CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
    int cxIcon = GetSystemMetrics(SM_CXICON);
    int cyIcon = GetSystemMetrics(SM_CYICON);
    CRect rect;
    GetClientRect(&rect);
    int x = (rect.Width() - cxIcon + 1) / 2;
    int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon
    dc.DrawIcon(x, y, m_hIcon);//这儿改变
    }
    else
    {
    CDialog::OnPaint();
    }
    }
      

  2.   

    也可以通过SendMessage(hwnd,   WM_SETICON,   ICON_SMALL,   (LPARAM)hIcon);~~
    具体可以参考一下MSDN~~~
      

  3.   

    对话框的构造函数里一般有这么一句m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);你只需要传入自己导进资源的图标ID值就可以了.
      

  4.   

    在资源里面,加入你所要的icon,然后将名字改为:IDR_MAINFRAME就行了.
      

  5.   

    如果是在别的进程中,可能要用到楼上说的SendMessage的方法,就不多说了。
    如果是在本对话框中,一般只需这么做:
    在对话框初始化函数里开始加上:
    HICON hIcon = AfxGetApp()->LoadIcon(IDI_ICON);
    SetIcon(m_hWnd, TRUE);
    SetIcon(m_hWnd, FALSE);