请问打开文件对话框的颜色怎么设置啊,我获得了CFileDialog中控件的ID,但是对这些控件的颜色修改无效,请高手指点怎么修改控件的颜色背景和字体

解决方案 »

  1.   

    如果你打算通过响应WM_CTLCOLOR消息来设置颜色,需要用SPY++查出控件的父窗口,以及该窗口与CFileDialog类对象的关系。
      

  2.   

    参考<VC++技术内幕>潘爱民译第4版,有参考示例
      

  3.   

    父窗口查找到了,但是此父窗口的WM_CTLCOLOR消息没有这些子控件,只有自己添加的控件才有这个消息。另外我从父窗口获得的子控件的句柄能设置控件的位置 说明获得的句柄正确,但是获得的DC不能设置控件的背景颜色。代码如下:
             CWnd* wndDlg = GetParent();
    CWnd* peditwnd = wndDlg->GetDlgItem(edt1); peditwnd->MoveWindow(0,0,120,20);//有效 CDC* dc = peditwnd->GetDC();
    COLORREF col = dc->SetBkColor(RGB(255,0,0));
    col = dc->SetTextColor(RGB(0,255,0));
    col = dc->SetBkColor(RGB(255,0,0));
    dc->SetBkMode(TRANSPARENT);//无效
      

  4.   

    直接这样用DC设置是不行的,控件是会向其父窗口发WM_CTLCOLOR消息的,你再检查一下,如果找不出问题,把代码贴上来看看。
      

  5.   

    回贴亦是善举 and 在相互 就是高手