我看了很多漂亮的界面,好像他们的图片都是一块一块贴上去的,怎么我的界面是把整个图画好,然后一次性贴到对话框上就行了,到底这样有什么利弊呢?一般大家都是怎么实现的呢?谢谢

解决方案 »

  1.   

    在她的程序运行的时候进行屏幕拷贝,然后你修改界面BMP图片,在你的程序中加载就可以了。
    一般很多的程序都是采用背景贴BMP图片的形式实现的。
      

  2.   

    void CTestDlg::OnPaint() 
    {
    HDC dc = ::GetDC(m_hWnd);
    HDC dcMem;
    dcMem = ::CreateCompatibleDC(dc);
    HBITMAP hBitmap = (HBITMAP) ::LoadImage( NULL , "E:\\1.bmp" , IMAGE_BITMAP ,
    0 , 0 ,LR_LOADFROMFILE );
    HBITMAP hOldBm = (HBITMAP)::SelectObject(dcMem , hBitmap);
    CRect rt;
    BITMAP bm;
    ::GetObject( hBitmap , sizeof(BITMAP) , &bm);
    GetClientRect(&rt);
    ::SetStretchBltMode(dc , COLORONCOLOR);
    StretchBlt( dc , 0 , 0 , rt.Width() , rt.Height() , dcMem , 0 , 0 , bm.bmWidth , bm.bmHeight ,  SRCCOPY);
    SelectObject(dcMem , hOldBm);
    ::DeleteDC(dcMem);
    DeleteObject(hBitmap);
    ::ReleaseDC( m_hWnd , dc);
    }
      

  3.   

    这个要看你的美术功底了。。可以做一个bmp当背景,也可以分别贴图
      

  4.   

    我做的界面都是用PhotoShop做好,
    然后作为背景图帖上去.另外,上上楼贴图的方法问题很多,建议不这样.
      

  5.   

    贴图倒是不难,我用codeproject上面的一个dialog类来实现的,调一个函数就可以了,哈哈
      

  6.   

    我觉的一次性贴图更加好一些 . . . 从效率来说并不会比多个贴图慢  . . . 另外从操作性来说 , 更强一些 . . . 多个贴图需要考虑每个图片之间的位置关系 , 操控性更弱一些 . . 出错率也更大一些 . . .你可以直接一个大的背景底图 , 这个背景地图可以在OnEraseBkgnd里绘制 . . .然后一些小图可以在OnPaint里绘制  ..